加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – GROUP_CONCAT用分隔符拉出空结果

发布时间:2020-12-13 22:38:14 所属栏目:PHP教程 来源:网络整理
导读:我昨天问了一个关于如何将多个结果输入一个字段的问题,并给出了答案GROUP_CONTACT(). 我把它放到我的代码中,它工作正常.我需要为两个字段执行此操作,因此我现在已经开始在相同的sql语句中使用它两次.不幸的是,它用逗号拉回第二个字段的空列表,我不太清楚为什
我昨天问了一个关于如何将多个结果输入一个字段的问题,并给出了答案GROUP_CONTACT().

我把它放到我的代码中,它工作正常.我需要为两个字段执行此操作,因此我现在已经开始在相同的sql语句中使用它两次.不幸的是,它用逗号拉回第二个字段的空列表,我不太清楚为什么.

这是我的示例产品数据:

pid || prod
1   || top
2   || sweater

这是我的样本库存数据(有些库存没有两种尺寸,例如腰围和胸围):

sid || size1 || size2 || pid
1   || M     ||       || 1
2   || L     ||       || 1
3   || XL    ||       || 1
4   || L     ||       || 2
5   || XL    ||       || 2

这是我的代码:

SELECT p.id,GROUP_CONCAT(s.size1) size1,GROUP_CONCAT(s.size2) size2,p.prod
FROM products p JOIN stock s ON s.prodid = p.id

这是它应该带来的:

pid || size1  || size2 || prod
1   || M,L,XL ||       || top
2   || L,XL   ||       || sweater

这就是它实际带来的:

pid || size1  || size2 || prod
1   || M,XL ||,|| top
2   || L,XL   ||,|| sweater

我已经检查过是否有空间或任何尺寸2的东西,那里什么都没有.

我做了这个查询,产品按照我的预期回来了:

SELECT size1,size2 FROM stock WHERE pid = 1 AND size2 = ""

当我做这个查询时,什么都没有回来:

SELECT size1,size2 FROM stock WHERE pid = 1 AND size2 IS NULL

我知道GROUP_CONCAT()将忽略NULL结果,但我需要做一些事情来阻止GROUP_CONTACT()显示一个空的逗号分隔列表,当它只是“”而不是NULL.

SELECT p.id,GROUP_CONCAT(if (s.size2 ='',null,s.size2)) as size2,p.prod 
FROM products p JOIN stock s ON s.prodid = p.id

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读