0
我有取值字段上的ID如何在逗號分隔字段中爲每個值返回單行?
177,175,173,178,179
什麼是返回是空的任何地方,一個條目,以多個逗號分隔值在這一領域的SELECT語句。
如何根據此逗號分隔字段使用SQL爲每個值返回1行?
我有取值字段上的ID如何在逗號分隔字段中爲每個值返回單行?
177,175,173,178,179
什麼是返回是空的任何地方,一個條目,以多個逗號分隔值在這一領域的SELECT語句。
如何根據此逗號分隔字段使用SQL爲每個值返回1行?
正如已經在評論中提到的那樣,考慮將數據規範化以便能夠正常維護和查詢您的數據。
在此期間,你有Tally(數量)表的幫助下,你可以創建一個這樣
CREATE TABLE tally (n INT NOT NULL PRIMARY KEY);
INSERT INTO tally
SELECT a.N + b.N * 10 + 1 n
FROM
(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a
,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b
ORDER BY n;
實現純SQL你的目標現在你可能看起來像
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(value, ',', n), ',', -1) value
FROM table1 CROSS JOIN tally
WHERE id = 1
AND n <= 1 + (LENGTH(value) - LENGTH(REPLACE(value, ',', '')))
輸出:
| VALUE | |-------| | 177 | | 175 | | 173 | | 178 | | 179 |
這裏是SQLFiddle演示
可能重複的[你可以拆分/爆炸MySQL查詢中的字段?](http://stackoverflow.com/questions/471914/can-you-split-explode-a-field-in-a -mysql-query) –
正在檢查....... – mprototype
你的意思是你想讓多行的值與逗號分隔符連接,並且你想在一行下連在一起......... –