【问题标题】:select concat with in-Tag选择带有 in-Tag 的 concat
【发布时间】:2025-12-10 08:55:02
【问题描述】:

如何在 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 的原因!

【问题讨论】:

  • 我试图理解但我无法理解
  • 您能否包含一些xxabc 的示例表数据?
  • 您可以使用 group_concat 函数生成准备好的语句。或者一个 REGEX 函数可能也会让你到达你要去的地方。

标签: mysql sql select concat


【解决方案1】:

由于您的示例数据似乎与您的问题相矛盾,因此很难准确说出您的目标,但我认为您需要使用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

【讨论】:

    最近更新 更多