테스트 사이트 - 개발 중인 베타 버전입니다

고수님들 sql 조건절 좀 봐주세요.. 채택완료

소수리꼬 8개월 전 조회 2,331

</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개

채택된 답변
+20 포인트
glitter0gim
8개월 전

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';

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

8개월 전

다음 코드가 도움이 될지 모르겠습니다.

 

</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>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인