我有一个表,其中 s_name 值如下所示:
'en_UK'
'en_US'
'de_CH'
'de_AT'
我想获得所有不同的语言,没有国家部分。因此,例如,如果我只有示例中的那些,我需要得到:
en
de
这样做的最佳方法是什么?
我现在有这个:
SELECT DISTINCT SUBSTRING(name,1,2)
FROM my_languages
尝试这个:
SELECT DISTINCT SUBSTRING_INDEX(name, '_', 1) langName
FROM my_languages
或者
SELECT SUBSTRING_INDEX(name, '_', 1) langName
FROM my_languages
GROUP BY langName
检查此链接MySQL STRING 函数
这是一个简单的方法:
select distinct left(s_name, 2)
from t
这假设语言名称是左边的两个字符。
这将适用于 Oracle 以及 MySql 我认为:
SELECT SUBSTR('en_UK',INSTR('en_UK','_')+1) country FROM dual
/