3

我想要将输出作为连接字符串的 sql 查询

Sql 查询

SELECT GROUP_CONCAT(nm) FROM xyz WHERE xyz.id IN (REPLACE(abc,"|",','))

其中 abc 是类似 1|2|3|4 的字符串,它是上面查询的 xyz 表的 ids,只在 abc 中给出第一个 id 的 nm。我认为它会创建类似的查询

SELECT GROUP_CONCAT(nm) FROM xyz WHERE xyz.id IN ("1,2,3,4")

所以 (") 可能会产生任何人都可以提供帮助的问题。

4

2 回答 2

3

您可以使用LIKE, (但它不会使用索引)

SELECT GROUP_CONCAT(nm)
FROM xyz
WHERE CONCAT('|', abc, '|') LIKE CONCAT('%|', xyz.id, '|%');
于 2012-07-07T08:09:56.190 回答
2

你可以INSTR这样使用:

SELECT GROUP_CONCAT(nm) 
FROM xyz 
WHERE INSTR(CONCAT('|', abc, '|'), CONCAT('|', xyz.id, '|')) > 0

或者您可以实现拆分功能或使用动态 SQL。

于 2012-07-07T08:47:36.483 回答