고수님들 sql 조건절 좀 봐주세요.. 채택완료
</p>
<p>$first_id = "abc"; //아이디</p>
<p>sql = " select count(*) as cnt $a_table where <span style="color:#860cff;"><strong>REPLACE('wr_datetime',$first_id,'') != '$classData_cut'</strong></span> ";</p>
<p>
$classData_cut 필드엔 2025-02-11 15:00:00 형식으로 출력됩니다.
그리고
a_table의 wr_datetime 필드에는 회원아이디 abc를 붙여서 abc2025-02-11 15:00:00 형식으로 이미 다른 프로그램에서 저장되었습니다.
여기서 아이디 abc를 버리고 싶거든요..
sql 조건절에 어떻게 해야 될지 좀 조언부탁드립니다.
답변 2개
SQL의 REPLACE 함수를 사용하여 wr_datetime에서 first_id 값을 제거한 후,
그 결과가 $classData_cut 값과 다른지 비교해야 합니다.
그러나 원문의 SQL 문장은 REPLACE('wr_datetime', $first_id, '')로 작성되어 있는데,
이는 wr_datetime 필드값 자체가 아니라
문자열 'wr_datetime'에서 first_id를 제거하는 잘못된 구문입니다.
올바른 조건을 사용하려면
REPLACE(wr_datetime, '$first_id', '') != '$classData_cut' 형태로 수정해야 합니다.
SQL 조건절을 올바르게 작성하려면 아래와 같이 수정해야 합니다.
SELECT COUNT(*) AS cnt
FROM $a_table
WHERE REPLACE(wr_datetime, '$first_id', '') != '$classData_cut';
댓글을 작성하려면 로그인이 필요합니다.
다음 코드가 도움이 될지 모르겠습니다.
</p>
<p><?php
$a_table = 'a_table';
$classData_cut = '2025-02-11 15:00:00';
$first_id = "abc"; //아이디</p>
<p> </p>
<p>// 1.
$sql = " select count(*) as cnt from {$a_table} where wr_datetime != '{$first_id}{$classData_cut}' ";
echo $sql;</p>
<p> </p>
<p>// 2.
$sql = " select count(*) as cnt from $a_table where wr_datetime != concat(mb_id,'$classData_cut') ";
echo $sql;
?></p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인