Der*_*ler 20 mysql group-concat
给出以下MySQL查询:
SELECT
`show`.`id`
, GROUP_CONCAT( `showClips`.`clipId` ORDER BY `position` ASC ) AS 'playlist'
FROM
`show`
INNER JOIN
`showClips`
ON
( `show`.`id` = `showClips`.`showId` )
;
Run Code Online (Sandbox Code Playgroud)
我想从数据库中检索所有"节目"的列表,包括包含"剪辑"的ID.
只要表中有条目,这样就可以正常工作show
.对于这个问题,我们假设所有表都是空的.
GROUP_CONCAT
将返回NULL
并因此强制一行进入结果(仅包含NULL
值).
然后我的应用程序会认为存在一个显示/结果.但结果将无效.这当然可以检查,但我觉得这可以(并且应该)在查询中已经被阻止了.
Dan*_*llo 40
你应该GROUP BY
在最后添加一个.
测试用例:
CREATE TABLE `show` (id int);
CREATE TABLE `showClips` (clipId int, showId int, position int);
SELECT
`show`.`id`,
GROUP_CONCAT( `showClips`.`clipId` ORDER BY `position` ASC ) AS 'playlist'
FROM `show`
INNER JOIN `showClips` ON ( `show`.`id` = `showClips`.`showId` )
GROUP BY `show`.`id`;
Empty set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
Mic*_*sov 10
添加组show
.id
,那么空表的结果是正确的:
create table emptyt(id int,name varchar(20));
select id, group_concat(name) from emptyt
Run Code Online (Sandbox Code Playgroud)
结果:
NULL, NULL
Run Code Online (Sandbox Code Playgroud)
用group by查询
select id, group_concat(name) from emptyt
group by Id
Run Code Online (Sandbox Code Playgroud)
结果:
空数据集
归档时间: |
|
查看次数: |
8679 次 |
最近记录: |