【发布时间】:2014-03-09 02:27:21
【问题描述】:
我有一个问题:
SELECT GROUP_CONCAT(stores.store_name)
FROM stores
WHERE stores.id IN
(
SELECT
GROUP_CONCAT(users_x_stores.store_id) as stores_list
FROM users_x_stores
WHERE users_x_stores.user_id = 4
);
子查询在单独运行时返回一个包含 3 个结果的 group_concat - 14、4、8。
ID 14、4、8 有对应的行 - 但整个查询只返回一个商店名称。
如果我将子查询更改为简单的 14、4、8,则整个查询将正常工作,并返回 3 个商店名称的串联。
谁能告诉我我在这里做错了什么?
谢谢。
【问题讨论】:
-
相信你想去掉第二个
GROUP_CONCAT(...)函数:select users_x_stores.store_id as stores_list ... -
你试过没有 GROUP_CONCAT 的子查询吗?我相信外部 IN 可以接受查询结果以及逗号分隔的列表。
-
Phylogenisis - 不错,这就是答案,现在工作正常。我对我的 GROUP_CONCAT 过于热心了。
标签: mysql group-concat