昨天我問了一個問題,關於如何將多個結果放入一個字段並給出了答案GROUP_CONTACT()
。GROUP_CONCAT用分隔符拉出空結果
我已經把它放到我的代碼中,它工作正常。我需要爲兩個字段執行此操作,因此我現在已經開始在同一個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()
會忽略空的結果,但我需要做些什麼來阻止GROUP_CONTACT()
顯示一個空的逗號分隔列表,當它只是""
而不是NULL
。