ZBLOG

mysql 使用SUBSTRING_INDEX根据最多值分割列,少的为空

可以使用下面的 SQL 语句来实现:

SELECT 
  SUBSTRING_INDEX(column_name, ',', 1) AS value_1,
  CASE 
    WHEN LENGTH(column_name) - LENGTH(REPLACE(column_name, ',', '')) >= 1 
      THEN SUBSTRING_INDEX(SUBSTRING_INDEX(column_name, ',', 2), ',', -1)
    ELSE ''
  END AS value_2,
  CASE 
    WHEN LENGTH(column_name) - LENGTH(REPLACE(column_name, ',', '')) >= 2 
      THEN SUBSTRING_INDEX(SUBSTRING_INDEX(column_name, ',', 3), ',', -1)
    ELSE ''
  END AS value_3
FROM table_name;

其中,column_name 是要分割的列名,table_name 是包含该列的表名。

上述 SQL 语句会将 column_name 列中的值按照逗号进行分割,并且根据最多的逗号个数来判断要分成几个部分。少于最多个数的部分则用空字符串表示。例如,如果 column_name 列中的值为 value1,value2,则上述 SQL 语句会将其分割成 value1value2 两部分,并且第三部分为空字符串。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=1473

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?