0

这是我的表结构

phone_calls(id, phone_number, call_id, timestamp, colx, col y )

phone_calls我想从组 concat 中的表中检索 10 个最近的调用,而不需要子查询

4

2 回答 2

2

试试这个(没有子查询它不会工作):

SELECT
    GROUP_CONCAT(call_id)
FROM (
    SELECT 
        call_id 
    FROM 
        phone_calls 
    ORDER BY 
        id DESC 
    LIMIT 10
) as tmp

更新:没有子查询:

SET @c:='';
SELECT 
    @c:=CONCAT(@c,',',call_id) 
FROM 
    phone_calls 
ORDER BY 
    id DESC 
LIMIT 10;
SELECT @c;
于 2013-06-14T07:32:46.440 回答
0

好的,我不确定这是否是您的问题,但是要使用 group_concat 您需要按列分组,对吗?不确定这是否可行,但您可以尝试一下,我以前使用过这种虚拟 col 方式

select 1 as col, group_concat(call_id) as latest_calls from phone_calls
ORDER BY timestamp DESC GROUP BY col LIMIT 10

你会有一个额外的无用列 col,但 latest_calls 应该是正确的

于 2013-06-14T08:30:24.043 回答