2

如果查询正确,BubQuery 总是返回空结果。

第一个查询:

SELECT * FROM `user` WHERE user_age IN(1,22,34);

结果:

在此处输入图像描述

第二个查询:

SELECT GROUP_CONCAT(user_age_list) AS user_age FROM `user_detail` WHERE id='1';

结果: 在此处输入图像描述

我正在尝试:

SELECT * FROM `user` WHERE user_age IN(SELECT GROUP_CONCAT(user_age_list) AS user_age FROM `user_detail` WHERE id='1');

Sqlfiddle: http://sqlfiddle.com./#!9/d6515f/3 //这是一个示例表。

上面的查询总是返回空行。但是,如果每个查询单独运行,则每个查询都会返回结果。真的我不知道错误在哪里。请更新答案或建议我。

4

2 回答 2

1

避免使用 GROUP_CONCAT

SELECT * 
FROM `user` 
WHERE user_age IN(SELECT user_age_list FROM `user_detail` WHERE id='1');

更新

SELECT * 
FROM `user` u 
WHERE EXISTS (SELECT 1 FROM `user_detail` ud  WHERE id='1' AND ud.user_age_list = u.user_age)
于 2016-09-09T14:29:10.837 回答
0
SELECT * 
FROM user
WHERE user_age IN 
(SELECT user_age_list user_age 
 FROM user_detail
 WHERE id='1');

您在这里不需要组 concat 。引擎知道结果集是一个没有组 concat 的包含列表。

它试图做的是将 '1,22,34' 与每个 user_age 进行比较,这就是你没有得到任何结果的原因。

1 <> '1,22,34'
22 <> '1,22,34'
34 <> '1,22,34' 

因此没有结果。

于 2016-09-09T14:28:22.733 回答