首頁 > 資料庫 > mysql教程 > 如何反轉MySQL的GROUP_CONCAT以分離串聯資料?

如何反轉MySQL的GROUP_CONCAT以分離串聯資料?

Susan Sarandon
發布: 2024-12-15 08:33:18
原創
791 人瀏覽過

How Can I Reverse MySQL's GROUP_CONCAT to Separate Concatenated Data?

逆轉GROUP_CONCAT 的影響:分割串聯資料

在MySQL 中,GROUP_CONCAT 函數將特定欄位中的多個值組合為單一欄位中的多個值組合為單一欄位中的多個值組合為單一欄位中的多個值組合為單一欄位中的多個值組合為單一欄位中的多個值組合為單一欄位中的多個值組合為單一欄位中的多個值組合為單一欄位中的多個值組合為單一欄位中的多個值組合為單一欄位中的多個值組合為單一欄位中的多個值組合為單一欄位中的多個值組合為單一欄位中的多個值組合為單一欄位中的多個值組合為單一欄位中的多個值組合為單一欄位中的多個值組合為單一欄位中的多個值組合值,以逗號分隔的字串。但是,在某些情況下,您可能希望獲得相反的效果,即連接的字串被分解回其各個組成部分。

實現拆分的查詢

要實現此目的,請使用以下查詢:

SELECT
  id,
  SUBSTRING_INDEX(SUBSTRING_INDEX(colors, ',', n.digit+1), ',', -1) color
FROM
  colors
  INNER JOIN
  (SELECT 0 digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) n
  ON LENGTH(REPLACE(colors, ',' , '')) <= LENGTH(colors)-n.digit
ORDER BY
  id,
  n.digit
登入後複製

了解詳細資訊

  • >
  • SUBSTRING_INDEX功能: 此函數從字串中提取第 n 個子字串,從第一次出現指定分隔符號開始。在此查詢中,多次使用它來隔離每個顏色子字串。
  • UNION 運算子: UNION 運算子將多個 SELECT 語句的結果組合到一個表格中。在這裡,它會傳回一系列代表顏色子字串位置的數字。
  • 數字1: 這會將數字值加1 以跳過每個顏色子字串開頭的逗號分隔符號.
LENGTH 函數:

此函數計算字串的長度。在這裡,它用於確保數字值在顏色字串的長度範圍內。

範例資料和輸出

+----+----------------------+
| id | colors               |
+----+----------------------+
| 1  | Red,Green,Blue       |
| 2  | Orangered,Periwinkle |
+----+----------------------+
登入後複製

用於範例資料提供:

+----+------------+
| id | colors     |
+----+------------+
| 1  | Red        |
| 1  | Green      |
| 1  | Blue       |
| 2  | Orangered  |
| 2  | Periwinkle |
+----+------------+
登入後複製
查詢的輸出將是:

以上是如何反轉MySQL的GROUP_CONCAT以分離串聯資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板