MySQL如何用分隔符分隔字符串
MySQL用分隔符分隔字符串
使用
可以使用如下函數
SUBSTRING_INDEX( i.final_car_type, ' ', 1 )
- i.final_car_type 即 需要分隔的字符串
- ’ ’ 即 用空格分隔該字符串
- 1 即:取出該空格之前的所有字符
也就是說,如果count是正數,那麼就是從左往右數,第N個分隔符的左邊的全部內容。相反,如果是負數,那麼就是從右邊開始數,第N個分隔符右邊的所有內容
效果
如果count 是1
- 表裡數據:東風風神全新AX7馬赫版 DF 21(天窗版)
- 拆分後:東風風神全新AX7馬赫版
如果count 是-1
- 表裡數據:東風風神全新AX7馬赫版 DF 21(天窗版)
- 拆分後:21(天窗版)
MySQL存儲過程 根據分隔符拆分字符串
DELIMITER $$ CREATE DEFINER=`root`@`%` PROCEDURE `proc_split_Id`(in selectIds blob(65535), in splitChar varchar(2)) BEGIN set @i=0; CREATE TEMPORARY TABLE if not exists Id_Result_s(Id long NOT NULL); truncate table Id_Result_s; SET @cnt = 1+(LENGTH(selectIds) - LENGTH(REPLACE(selectIds,splitChar,''))); set @i=1; start transaction; WHILE @i <=@cnt DO SET @result = REPLACE(SUBSTRING(SUBSTRING_INDEX(selectIds, splitChar, @i), LENGTH(SUBSTRING_INDEX(selectIds, splitChar, @i -1)) + 1), splitChar, ''); INSERT INTO Id_Result_s(Id) VALUES (@result ); SET @i = @i + 1; END WHILE; commit; END
selectIds為需要拆分的字符串,splitChar為分隔符. 拆分的結果保存在臨時表Id_Result_s中.
while中有insert語句,循環插入.在while前後加上start transaction和commit可以提高效率.
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- MySql字符串拆分實現split功能(字段分割轉列)
- MySQL查詢字段實現字符串分割split功能的示例代碼
- MySQL 字符串拆分操作(含分隔符的字符串截取)
- mysql ON DUPLICATE KEY UPDATE重復插入時更新方式
- 如何使用分區處理MySQL的億級數據優化