【问题标题】:Finding language in string (doing substring?) with MySQL使用 MySQL 在字符串中查找语言(做子字符串?)
【发布时间】:2012-12-29 17:13:53
【问题描述】:

我有一个表,其中 s_name 值如下所示:

'en_UK'
'en_US'
'de_CH'
'de_AT'

我想获得所有不同的语言,不包括国家/地区部分。因此,例如,如果我只有示例中的那些,我需要得到:

en
de

最好的方法是什么?

我现在有这个:

SELECT DISTINCT SUBSTRING(name,1,2) 
FROM my_languages

【问题讨论】:

  • 我认为这可能是获得该价值的最佳方式。它在某种程度上不起作用。你的代码工作看这个演示——sqlfiddle.com/#!2/3301f/1
  • 名称是否总是在下划线符号前包含 2 个字母(语言)?
  • 你试过你的代码了吗:-)?
  • bonCodigo:是的,它有效。我只是在想一种更好的方法:)

标签: mysql sql select substring


【解决方案1】:

试试这个:

SELECT DISTINCT SUBSTRING_INDEX(name, '_', 1) langName 
FROM my_languages

SELECT SUBSTRING_INDEX(name, '_', 1) langName 
FROM my_languages 
GROUP BY langName

查看此链接MySQL STRING Functions

【讨论】:

    【解决方案2】:

    这是一个简单的方法:

    select distinct left(s_name, 2)
    from t
    

    这假设语言名称是左边两个字符。

    【讨论】:

      【解决方案3】:

      我认为这适用于 Oracle 和 MySql:

      SELECT SUBSTR('en_UK',INSTR('en_UK','_')+1) country FROM dual
      /
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-13
        相关资源
        最近更新 更多