昨天我问了一个问题,关于如何将多个结果合并到一个字段中,并得到了答案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,L,XL || ,, || top
2 || L,XL || , || sweater
我已经检查过size2中是否有空格或其他内容,但是里面什么都没有。
我运行了这个查询,产品返回的结果与我预期的一样:
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
的情况下显示一个空逗号分隔列表。