1
我有一些問題與查詢似乎與GROUP_CONCAT這麼想的工作,這是我寫的MySQL查詢與GROUP_CONCAT和這麼想的工作子查詢
SELECT category, (
SELECT GROUP_CONCAT(DISTINCT `short` SEPARATOR ', ')
FROM `ods_category`
WHERE cid IN (n.category)
ORDER BY cid
) AS catstring
FROM ods_news AS n
問題只是列「 catstring」 containe只有1項子查詢發現,但如果我用
WHERE cid IN (19,18,3)
更換
WHERE cid IN (n.category)
它的窩k好,但你可以看到這不是動態的 你知道爲什麼n.category只限於一個項目嗎?
IDK的,如果u需要這一點,但表的sintetic strucure是
ods_news ods_category
id | category cid | short
1 | 1 1 | AA
2 | 3 2 | BB
3 | 4,5 3 | CC
4 | 1,2,4 4 | DD
5 | 6 5 | EE
6 | 2,1,6 6 | FF
是結果我有什麼,我想
results i get result i want
category | catstring category | catstring
1 | AA 1 | AA
3 | CC 3 | CC
4,5 | DD 4,5 | DD,EE
1,2,4 | AA 1,2,4 | AA,BB,DD
6 | FF 6 | FF
2,1,6 | BB 2,1,6 | BB,AA,FF
這聽起來像它會做的類別更有意義的新聞項目是一個多一對多的方式單獨的表,而不是以逗號分隔的字符串形式存儲。以目前的形式處理它將會更加困難。當category是一個字符串時,使用'IN'不會像你想要的那樣工作。 –