MySQL 具有不同结果长度的多个 select 查询
MySQL Multiple select queries with different result lengths
我正在尝试同时 运行 两个 sql select 语句,一个用于计算行数,另一个用于 return 来自 "search_names"。我收到错误 "subquery returns more than one row" 因为 rowcount 只有一个值 return 而 searchresults return 很多。有什么办法可以 运行 将这些语句放在一起,还是我需要将它们分开?
SELECT(
SELECT COUNT(*)
FROM user_searches
WHERE `user_id` = 15
AND `read` = 0
)
AS rowcount,
(
SELECT `search_name`
FROM user_searches
WHERE `user_id` = 15
)
AS searchresults
怎么样:
SELECT
(SELECT COUNT(*) FROM user_searches WHERE `user_id` = 15 AND `read` = 0)
AS rowcount,
GROUP_CONCAT(`search_name`) AS searchresults
FROM user_searches WHERE `user_id` = 15
问题是您不能 return 在行中为整个数据集赋值。但是您可以 return 所有搜索名称的逗号分隔列表。然后从你的程序中你可以很容易地解析这个列表。
我正在尝试同时 运行 两个 sql select 语句,一个用于计算行数,另一个用于 return 来自 "search_names"。我收到错误 "subquery returns more than one row" 因为 rowcount 只有一个值 return 而 searchresults return 很多。有什么办法可以 运行 将这些语句放在一起,还是我需要将它们分开?
SELECT(
SELECT COUNT(*)
FROM user_searches
WHERE `user_id` = 15
AND `read` = 0
)
AS rowcount,
(
SELECT `search_name`
FROM user_searches
WHERE `user_id` = 15
)
AS searchresults
怎么样:
SELECT
(SELECT COUNT(*) FROM user_searches WHERE `user_id` = 15 AND `read` = 0)
AS rowcount,
GROUP_CONCAT(`search_name`) AS searchresults
FROM user_searches WHERE `user_id` = 15
问题是您不能 return 在行中为整个数据集赋值。但是您可以 return 所有搜索名称的逗号分隔列表。然后从你的程序中你可以很容易地解析这个列表。