我可能失去了一些東西簡單忽略不計,但似乎我選擇了CONCAT_WS
分隔似乎並不奏效更復雜的查詢內部時。選擇分離器由CONCAT_WS(MySQL的/ MariaDB的)
首先我測試CONCAT_WS本身:
SELECT CONCAT_WS('/', 'a', 'b', 'c') AS `test`;
其中返回:
test
a/b/c
然後我試了GROUP_CONCAT
裏面,我打算用:
SELECT GROUP_CONCAT(CONCAT_WS('/', 'a', 'b', 'c')) AS `test`;
哪個返回:
test
a/b/c
好都好,所以我想在我的實時數據正確查詢:
SELECT `Box Barcode`,`Title`,`Start Date`,`End Date`,`Offsite Indicator`,`MIA`,
GROUP_CONCAT(CONCAT_WS('/',`Description`)) AS `Contents`
FROM `boxes`
GROUP BY `Box Barcode` ORDER BY `Box Barcode` ASC ;
其中返回正確的結果,但用逗號,而不是/
例如,以下是結果的一行:
Box Barcode Title Start Date End Date Offsite Indicator MIA Contents
C5500501127 PPS AMEX 30/06/2002 30/06/2002 TRUE FALSE PPS AMEX,PPS AMEX,PPS DINERS,PPS DINERS,PPS LIABILITIES,PPS PROPERTY PLAN AND EQUIPMENT,PPS ASSETS
幾個小時的谷歌搜索沒有幫助。任何人有任何想法我要去哪裏錯了?這是通過運行MariaDB的一個Debian服務器上的phpMyAdmin的Web界面(的libmysql - 53年5月5日)。
_Your查詢有problem_。您正在選擇不出現在「GROUP BY」中的非聚合列。請用您希望的邏輯更新您的問題,以便爲每個條形碼選擇一條記錄。 –
是@TimBiegeleisen在幾乎任何其他SQL你需要將它們全部列出。但是在這個特定點上,mysql有點鬆動。所以沒有「......它不包含在聚合函數或GROUP BY子句」錯誤中。 Mysql是錯誤的,但它並不在乎。 XD – monotonehell