【问题标题】:MySQL select field from stringMySQL 从字符串中选择字段
【发布时间】:2014-11-25 11:30:10
【问题描述】:

我有一个包含 3 列的表格:

number | number2 | string
________________________________________________________________
     1 |       2 | 0 423 0 2 0 4 2 1 423 521

那么,如何得到这样的结果呢? :

1, 2, 423

其中 423 是字符串中的第二个数字?

【问题讨论】:

  • 我猜您将不得不使用您的编程语言来解析该字符串并提取第二个数字。您使用什么语言?
  • 你的意思是第二高的数字吗? (OR) 第二个位置编号?

标签: mysql sql string select substring


【解决方案1】:

没有内置函数来拆分字符串,但 MacGyver 可以用 substring_index 做一些改进:

SELECT `number`, `number2`, 
       SUBSTRING_INDEX(SUBSTRING_INDEX(`string`, ' ', 2), ' ', -1)
FROM   my_table

【讨论】:

    【解决方案2】:

    您总是可以使用字符串函数来删除第一个值,并将其余的转换为 int;

    SELECT number, 
           number2, 
           CAST(SUBSTR(string, LOCATE(' ', string)) AS SIGNED) number3
    FROM mytable;
    

    An SQLfiddle to test with.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-20
      • 1970-01-01
      • 2020-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多