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应该返回子查询类似于以下示例的所有项目:

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

这就是我需要 concat 的原因!

4

1 回答 1

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, '%')
        );

SQL Fiddle 示例

于 2013-07-30T16:28:42.723 回答