我想要sql查询,它将输出作为concat字符串
Sql Query
SELECT GROUP_CONCAT(nm) FROM xyz WHERE xyz.id IN (REPLACE(abc,"|",','))
其中abc是字符串,如1 | 2 | 3 | 4,这是xyz表的id 上面的查询只给出abc中的第一个id的nm。我创建了像
这样的查询SELECT GROUP_CONCAT(nm) FROM xyz WHERE xyz.id IN ("1,2,3,4")
所以(“)可能会造成任何人都可以提供帮助的问题。
答案 0 :(得分:3)
您可以使用LIKE
,(但之后不会使用索引)
SELECT GROUP_CONCAT(nm)
FROM xyz
WHERE CONCAT('|', abc, '|') LIKE CONCAT('%|', xyz.id, '|%');
答案 1 :(得分:2)
你可以这样使用INSTR
:
SELECT GROUP_CONCAT(nm)
FROM xyz
WHERE INSTR(CONCAT('|', abc, '|'), CONCAT('|', xyz.id, '|')) > 0
或者您可以实现拆分功能或使用动态SQL。