最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中列值分割的幾種方法

 更新時間:2025年09月29日 10:28:00   作者:一一Null  
這篇文章主要介紹了MySQL中列值分割的幾種方法,針對不同場景提供SUBSTRING_INDEX、JSON_TABLE、正則表達(dá)式等多種解決方案,下面就來詳細(xì)的介紹一下,感興趣的可以了解一下

版本:MySQL 8.x

MySQL 沒有 split() 這樣的函數(shù),但可以用 SUBSTRING_INDEXJSON_TABLE 實現(xiàn)“按分隔符拆列”。
下面給出 官方推薦 + 實戰(zhàn)寫法,每個都能直接復(fù)制運行。

1. 核心函數(shù)速覽

函數(shù)作用一句話語法
SUBSTRING_INDEX(str, delim, n)返回第 n 個分隔符前/后的子串SUBSTRING_INDEX('a,b,c',',',2) → ‘a,b’
JSON_TABLE(json, path COLUMNS(…))把 JSON 數(shù)組拆成行見案例 4
REGEXP_SUBSTR / REGEXP_REPLACE正則切分/替換MySQL 8 支持,見案例 5

2. 案例實驗室

準(zhǔn)備一張表:

CREATE TABLE orders (
  id INT PRIMARY KEY,
  items VARCHAR(100)   -- 用逗號分隔的商品串
);

INSERT INTO orders VALUES
(1,'蘋果,香蕉,橙子'),
(2,'芒果'),
(3,'桃子,葡萄'),
(4,'');

案例 1 SUBSTRING_INDEX 取第 1、2、3 個元素

SELECT id,
       SUBSTRING_INDEX(items, ',', 1)                         AS item1,
       SUBSTRING_INDEX(SUBSTRING_INDEX(items, ',', 2), ',', -1) AS item2,
       SUBSTRING_INDEX(items, ',', -1)                        AS item_last
FROM orders;
iditem1item2item_last
1蘋果香蕉橙子
2芒果芒果芒果
3桃子葡萄葡萄
4

案例 2 一行變多行(數(shù)字表法)

用遞歸數(shù)字表(MySQL 8 CTE)把任意長度的逗號串拆成行。

WITH RECURSIVE nums(n) AS (
  SELECT 1 UNION ALL SELECT n+1 FROM nums WHERE n<20
)
SELECT o.id, o.items,
       TRIM(SUBSTRING_INDEX(SUBSTRING_INDEX(o.items, ',', n), ',', -1)) AS item
FROM orders o
JOIN nums
  ON n <= 1 + LENGTH(o.items) - LENGTH(REPLACE(o.items, ',', ''));

結(jié)果

iditemsitem
1蘋果,香蕉,橙子蘋果
1蘋果,香蕉,橙子香蕉
1蘋果,香蕉,橙子橙子
2芒果芒果
3桃子,葡萄桃子
3桃子,葡萄葡萄

案例 3 JSON_TABLE(8.0 最優(yōu)雅)

把逗號串先轉(zhuǎn)成 JSON,再拆成行。

SELECT o.id, t.item
FROM orders o,
JSON_TABLE(
  CONCAT('["', REPLACE(items, ',', '","'), '"]'),  -- 變成 ["蘋果","香蕉","橙子"]
  "$[*]" COLUMNS(item VARCHAR(20) PATH "$")
) AS t;

結(jié)果與案例 2 完全一致,但寫法更短更清晰。

案例 4 正則切分(REGEXP_SUBSTR)

按任意正則分隔符拆列。

SELECT id,
       REGEXP_SUBSTR(items, '[^,]+', 1, 1) AS item1,
       REGEXP_SUBSTR(items, '[^,]+', 1, 2) AS item2,
       REGEXP_SUBSTR(items, '[^,]+', 1, 3) AS item3
FROM orders;
iditem1item2item3
1蘋果香蕉橙子
2芒果NULLNULL
3桃子葡萄NULL
4NULLNULLNULL

3. 課堂小結(jié)

場景推薦方案
已知固定位置SUBSTRING_INDEX 一步到位
任意長度串 → 行遞歸 CTE + SUBSTRING_INDEX
MySQL 8.0JSON_TABLE 最優(yōu)雅
復(fù)雜正則REGEXP_SUBSTR / REGEXP_REPLACE

到此這篇關(guān)于MySQL中列值分割的幾種方法的文章就介紹到這了,更多相關(guān)MySQL 列值分割內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Win7x64下Mysql5.7.18解壓版的安裝方法

    Win7x64下Mysql5.7.18解壓版的安裝方法

    這篇文章主要介紹了Win7x64下Mysql5.7.18解壓版的安裝方法,需要的朋友可以參考下
    2017-07-07
  • MYSQL增加索引語句小結(jié)

    MYSQL增加索引語句小結(jié)

    這篇文章主要給大家介紹了關(guān)于MYSQL增加索引的相關(guān)資料,索引是一種特殊的文件(InnoDB數(shù)據(jù)表上的索引是表空間的一個組成部分),它們包含著對數(shù)據(jù)表里所有記錄的引用指針,需要的朋友可以參考下
    2023-09-09
  • MySQL數(shù)據(jù)庫的備份與還原操作方法

    MySQL數(shù)據(jù)庫的備份與還原操作方法

    這篇文章主要介紹了MySQL數(shù)據(jù)庫的備份與還原操作方法,文章圍繞主題展開詳細(xì)的內(nèi)容加入,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • 關(guān)于MySQL innodb_autoinc_lock_mode介紹

    關(guān)于MySQL innodb_autoinc_lock_mode介紹

    下面小編就為大家?guī)硪黄P(guān)于MySQL innodb_autoinc_lock_mode介紹。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • 在linux中導(dǎo)入sql文件的方法分享(使用命令行轉(zhuǎn)移mysql數(shù)據(jù)庫)

    在linux中導(dǎo)入sql文件的方法分享(使用命令行轉(zhuǎn)移mysql數(shù)據(jù)庫)

    為使用阿里云主機,沒有裝ftp,也沒有裝phpmyadmin,所以一切都得靠命令行。轉(zhuǎn)移網(wǎng)站的重要一步就是轉(zhuǎn)移數(shù)據(jù)庫,這里簡單介紹一下如何在這種情況下導(dǎo)入sql文件
    2014-02-02
  • MySQL命令行下如何執(zhí)行.sql腳本

    MySQL命令行下如何執(zhí)行.sql腳本

    這篇文章主要介紹了MySQL命令行下如何執(zhí)行.sql腳本問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Linux中部署MySQL環(huán)境的四種方式圖文詳解

    Linux中部署MySQL環(huán)境的四種方式圖文詳解

    這篇文章主要介紹了Linux中部署MySQL環(huán)境的四種方式,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-11-11
  • mysql如何顯示longblob解決方案

    mysql如何顯示longblob解決方案

    這篇文章主要為大家介紹了mysql如何顯示longblob解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • 一篇文章帶你了解MySQL之undo日志

    一篇文章帶你了解MySQL之undo日志

    Undo日志也叫做回滾日志,是MySQL數(shù)據(jù)庫當(dāng)中一種重要的日志,用于記錄更新操作之前的數(shù)據(jù)狀態(tài),這篇文章主要給大家介紹了關(guān)于如何通過一篇文章帶你了解MySQL之undo日志的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • Mysql中的Innodb事務(wù)和鎖詳解

    Mysql中的Innodb事務(wù)和鎖詳解

    這篇文章主要介紹了Mysql中的Innodb事務(wù)和鎖詳解,InnoDB是MySQL的一種存儲引擎,它是一種可靠性和性能非常好的存儲引擎,它具有ACID事務(wù)支持,可以提供高并發(fā)性和數(shù)據(jù)完整性,需要的朋友可以參考下
    2023-09-09

最新評論

武平县| 黄骅市| 芷江| 高碑店市| 保山市| 北辰区| 习水县| 任丘市| 逊克县| 拜泉县| 沙雅县| 湘潭县| 福清市| 江油市| 内丘县| 平阳县| 武定县| 瓦房店市| 吴忠市| 兴安县| 福海县| 德兴市| 鲜城| 张家川| 清水县| 深圳市| 分宜县| 义马市| 平遥县| 南城县| 永修县| 南靖县| 安仁县| 巴彦淖尔市| 盐亭县| 稻城县| 唐河县| 洞头县| 株洲县| 来安县| 雷州市|