一个有趣的MySQL拆分字符串需求

Posted wzy0623

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个有趣的MySQL拆分字符串需求相关的知识,希望对你有一定的参考价值。

需求:
用sql把一个字段中的中文和英文字符串拆分开来

例如:
“魏派牌CC6460AE04A”    =》    “魏派牌” “CC6460AE04A”
“梅赛德斯-奔驰牌BJ6457H”    =》    “梅赛德斯-奔驰牌” “BJ6457H”
“博斯特A4121988CC小轿车”    =》    “博斯特” “A4121988CC小轿车”
“发现4SALAN2F6”    =》    “发现” “4SALAN2F6”

实现:

SELECT a, SUBSTRING(a, 1, b - 1) s1, SUBSTR(a, b) s2
  FROM (SELECT a, SUBSTRING_INDEX(b, ',', 1) b
          FROM (SELECT a,GROUP_CONCAT(b ORDER BY b) b
                  FROM (SELECT t1.a, INSTR(UPPER(t1.a), t2.a) b
                          FROM t1, 
                               (SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(a, ',', help_topic_id + 1), ',', - 1) a
                                 FROM mysql.help_topic, 
                                      (SELECT 'A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0,1,2,3,4,5,6,7,8,9' a) t
                                WHERE help_topic_id < (LENGTH(a) - LENGTH(REPLACE(a, ',', '')) + 1)) t2) t
                 WHERE b > 0 GROUP BY a) t) t;

效果:​​​​​​​

 

以上是关于一个有趣的MySQL拆分字符串需求的主要内容,如果未能解决你的问题,请参考以下文章

教妹学 Java:字符串拆分

MySQL主从原理

MYSQL表根据列拆分的问题

MySQL数据库,字符串字段拆分

mysql中怎么实现对含有逗号的字符串进行以

在数值中拆分/分解mysql字符串