以下查询有效(下面的示例查询)
SELECT cat, dog, mouse, ids,
(SELECT cheese
FROM my_second_table AS a
WHERE a.ids IN (1,2,3,4,5,6,7,8,9,10)
LIMIT 1) AS cheese
FROM my_first_table
它为我提供了5列,其中包含了我预期的正确数据,包括奶酪色谱柱。
以下查询不起作用,奶酪列始终为空
SELECT cat, dog, mouse, ids,
(SELECT cheese
FROM my_second_table AS a
WHERE a.ids IN (ids)
LIMIT 1) AS cheese
FROM my_first_table
ids
包含与上面第一个查询中相同的逗号分隔数字,从my_first_table
中的每一行检索。
我觉得这应该有用,我做错了。可以在Sub-Select IN()子句中使用SELECT结果吗?
答案 0 :(得分:2)
尝试使用find_in_set函数,如
SELECT cat, dog, mouse, ids,
(SELECT cheese
FROM my_second_table AS a
WHERE find_in_set(a.ids, ids)
LIMIT 1) AS cheese
FROM my_first_table
IN接受要搜索的列表或参数,FIND_IN_SET接受包含逗号分隔列表的字符串参数。
在您的情况下,ids
是逗号分隔的字符串,因此find_in_set
将为true且IN
子句返回false