그래서 1 ;; 2;와 같은 형식의 데이터가 있습니다. 그런 다음이 숫자를 쿼리에 사용해야하므로 1,2로 변환하고 IN 조건에서 사용한다고 생각했습니다. 내 테이블에서 결과는 2 행을 리턴해야하지만 대신 1 행만 리턴합니다.하위 쿼리를 대체 할 MySQL을 선택하십시오.
내 검색어는 다음과 같습니다. 문제가 없지만 1 행만있는 부속 조회 리턴은 검색됩니다.
select *
from wt_lists
where id IN ((select replace (replace(sendto, ';;',','),';','')
from wt_stats where statsid IN (1)))
하지만이 함께 할 때. 그것은 내 경우에는 2 행 올바른 결과를 반환합니다.
select *
from wt_lists
where id IN (1,2)
무엇이 여기에 있습니까?
';1;;2;'
하려면 :
귀하의 하위 쿼리 ... 문자열 "1, 2", ID 1 및 2없는 두 개의 행을 반환하면 '(CAST를 선택 할 때 1,2 'AS UNSIGNED)라면 1 – simendsjo
을 얻을 수 있습니다. 가능한 경우 응용 프로그램 논리에서 데이터를 구문 분석하고 쉼표로 구분 된 문자열을 MySQL에 보내십시오. –
David에 동의합니다. MySQL에서이 작업을 수행하는 것이 지저분 해 보입니다. 이 저장 프로 시저를 발견 : http://forge.mysql.com/tools/tool.php?id=4 – simendsjo