使用in-Tag选择concat

时间:2013-07-30 15:23:54

标签: mysql sql select concat

如何在MySql中形成以下语句,它会起作用?

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 个答案:

答案 0 :(得分: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