2013-07-30 4 views
0

MySql에서 다음 구문을 어떻게 작성할 수 있습니까?인 태그를 사용하여 연결을 선택하십시오.

select a,b,c from xx where a in concat(select y from abc where x='a','%'); 

알림 : 서브 쿼리는 두 줄 이상을 반환합니다!

|---A----| 
|/backup/| 
|/foto/ | 

그리고 서브 쿼리는 다음과 같은 예처럼 어디 a in concat이 모든 항목을 반환해야합니다 : 나는 CONCAT을 필요로하는 이유입니다

|/backup/23/x.txt | 
|/backup/xx/asdf | 
|/backup/x.txt | 

!

+1

나는 이해하려고 노력했지만 나는 할 수 없었다 –

+1

'xx'와'abc'을위한 샘플 테이블 데이터를 포함 할 수 있습니까? –

+0

group_concat 함수를 사용하여 준비된 명령문을 생성 할 수 있습니다. 또는 REGEX 기능은 아마도 당신이 가고있는 곳으로 데려다 줄 것입니다. –

답변

0

당신이 당신의 예를 들어 데이터가 귀하의 질문에 모순 나타나기 때문에 여기 후 무엇을 정확하게 말할 어렵습니다,하지만 난 당신이 오히려 IN보다는 EXISTS 절을 사용할 필요가 있다고 생각 :

SELECT a, b, c 
FROM xx 
WHERE EXISTS 
     ( SELECT 1 
      FROM abc 
      WHERE abc.x = 'a' 
      AND  xx.a LIKE CONCAT(abc.y, '%') 
     ); 

Example on SQL Fiddle

관련 문제