如果我这样选择:
SELECT `id` FROM `table` WHERE `id` IN (1,2,3)
它有效,但如果我喜欢这样:
SELECT `id` FROM `table`
WHERE `id` IN (`column`)
其中column是一个内部列,其值为:1,2,3,它只返回1
这是查询:
SELECT a.id, (
SELECT f.name FROM facs f WHERE f.id IN(REPLACE(a.facs, ';', ','))
) AS facs
FROM ads a LIMIT 0, 10
由于
答案 0 :(得分:3)
我认为不是
SELECT `id` FROM `table`
WHERE `id` IN (`column`)
你应该这样做:
SELECT `id` FROM `table`
WHERE `id` IN (SELECT `column` FROM `table`)
答案 1 :(得分:2)
您可以使用FIND_IN_SET()
功能:
SELECT a.id, (
SELECT f.name
FROM facs f
WHERE FIND_IN_SET(f.id, REPLACE(a.facs, ';', ','))
) AS facs
FROM ads LIMIT 0, 10
注意:由于这是使用函数,因此无法使用索引,您应该考虑将facs
存储在多行中。