在GROUP_CONCAT的查询中忽略了sql – LIMIT
发布时间:2020-12-12 08:44:29 所属栏目:MsSql教程 来源:网络整理
导读:我需要从第二个表中选择一些行,并以逗号分隔的字符串连接.查询功能很好,除了一个问题 – 它总是选择所有行并忽略LIMIT. 这是我的查询的一部分,它获取该字符串并忽略LIMIT: select group_concat(value order by `order` asc SEPARATOR ',') from slud_data le
我需要从第二个表中选择一些行,并以逗号分隔的字符串连接.查询功能很好,除了一个问题 – 它总是选择所有行并忽略LIMIT.
这是我的查询的一部分,它获取该字符串并忽略LIMIT: select group_concat(value order by `order` asc SEPARATOR ',') from slud_data left join slud_types on slud_types.type_id=slud_data.type_id where slud_data.product_id=18 and value!='' and display=0 limit 3; // Result: +---------------------------------------------------------+ | group_concat(value order by `order` asc SEPARATOR ',') | +---------------------------------------------------------+ | GA-XXXX,Bentley,CONTINENTAL FLYING SPUR,2006 | +---------------------------------------------------------+ // Expected result: (only 3 comma-separated records,not 4) 完整查询: SELECT *,product_id id,(select group_concat(value order by `order` asc SEPARATOR ',') from slud_data left join slud_types on slud_types.type_id=slud_data.type_id where slud_data.product_id=t1.product_id and value!='' and display=0 limit 3) text FROM slud_products t1 WHERE now() < DATE_ADD(date,INTERVAL +ttl DAY) and activated=1 ORDER BY t1.date desc 解决方法LIMIT子句限制最终结果集中的行数,而不是用于在GROUP_CONCAT中构造字符串的行数.由于您的查询只返回最终结果中的一行,所以LIMIT不起作用.您可以通过使用LIMIT 3构建子查询来解决您的问题,然后在外部查询中将GROUP_CONCAT应用于该子查询的结果. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |