在mysql中,有時候需要按照分隔符號將字符串拆分成多個子串,進行進一步處理。那么,如何在mysql中按順序拆分字符串呢?
-- 創(chuàng)建測試表 CREATE TABLE `test_tb` ( `id` int(11) NOT NULL AUTO_INCREMENT, `text` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 插入測試數(shù)據(jù) INSERT INTO `test_tb` (`text`) VALUES ('A,B,C,D,E,F,G'), ('1|2|3|4|5|6|7'), ('ABC&DEF&GHI&JKL&MNO'); -- 拆分字符串并按順序返回 SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(text, ',', 1), ',', -1) AS col1, SUBSTRING_INDEX(SUBSTRING_INDEX(text, ',', 2), ',', -1) AS col2, SUBSTRING_INDEX(SUBSTRING_INDEX(text, ',', 3), ',', -1) AS col3, SUBSTRING_INDEX(SUBSTRING_INDEX(text, ',', 4), ',', -1) AS col4, SUBSTRING_INDEX(SUBSTRING_INDEX(text, ',', 5), ',', -1) AS col5, SUBSTRING_INDEX(SUBSTRING_INDEX(text, ',', 6), ',', -1) AS col6, SUBSTRING_INDEX(SUBSTRING_INDEX(text, ',', 7), ',', -1) AS col7 FROM `test_tb`;
以上是一個示例代碼,其中我們通過SUBSTRING_INDEX函數(shù)和嵌套的方式,按順序拆分了字符串,并將拆分后的結(jié)果作為各列返回。如果需要根據(jù)不同的分隔符進行拆分,則只需將分隔符替換即可。
上一篇mysql挖礦
下一篇mysql按順序填補空缺