【问题标题】:How can I specify the position of a given symbol in a substring function?如何在子字符串函数中指定给定符号的位置?
【发布时间】:2018-11-20 18:13:30
【问题描述】:

假设我有这样的数据列:

IT > FR
ES > PT 
FR > IT 

我想显示两个单独的列,其中的结果是:在第一列中,只有第一个国家的国家代码,在第二列中,只有第二个国家的代码。

我们使用 substring 函数。而且没关系。

现在,假设我有这个名为边框的列:

IT > FR
ES > PT 
FR > IT
DE > PORTO
ES > NL
NO2 > UK

边框的长度不一样!

有没有办法在子字符串函数中为一列指定仅从> 位置向后或向前的字符串?

【问题讨论】:

    标签: mysql sql position substring


    【解决方案1】:

    https://www.w3resource.com/mysql/string-functions/mysql-locate-function.php

    Locate([your column],'>',1)
    

    还是我错过了什么?

    Left([Your column],Locate([your column],'>',1)-1) --To grab the left side
    Right([Your column],Locate([your column],'>',1)+1) --to grab the right side
    

    【讨论】:

    • 通常我会写 SELECT substring(border, 1, 2) as BLABLA FROM DB1;它只会检索我,例如 IT 或 ES,但我确实也很少有期望,不仅是两个字符,而且是 6 个字符。所以我希望有一个命令可以获取 > 符号左侧(或右侧)的所有内容。 @ChrisG
    • @Enrico 查看新的更新,让我知道是否可行
    【解决方案2】:

    使用substring_index():

    select substring_index(border, ' > ', 1) as country_1,
           substring_index(border, ' > ', -1) as country_2
    

    这是一个内置的 MySQL 函数。请注意,这是在 '>' 周围使用空格,因为这似乎是您的数据的结构。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-30
      • 2012-11-01
      • 1970-01-01
      • 2018-02-27
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      相关资源
      最近更新 更多