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 所有搜索名称的逗号分隔列表。然后从你的程序中你可以很容易地解析这个列表。