2013-07-30 5 views
0

Как я могу создать следующее заявление в MySql, чтобы оно работало?select concat with in-Tag

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

Примечание: подзапрос возвращает более одной строки!

Пример

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

И a in concat должен вернуть все пункты, где подзапрос, как в следующем примере:

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

Вот причина, почему мне нужно CONCAT!

+1

Я попытался понять, но я не смог –

+1

Можете ли вы включить некоторые данные таблицы образцов для 'xx' и' abc'? –

+0

Вы можете сгенерировать подготовленный оператор, используя функцию group_concat. Или функция REGEX, вероятно, доставит вас туда, куда вы тоже поедете. –

ответ

0

Трудно сказать точно, что вы после здесь, потому что ваш пример данных, как представляется, противоречит ваш вопрос, но я думаю, вам нужно использовать выражение EXISTS, а не IN:

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