1

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

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

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

en
de

这样做的最佳方法是什么?

我现在有这个:

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

3 回答 3

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 函数

于 2013-01-15T15:11:09.353 回答
0

这是一个简单的方法:

select distinct left(s_name, 2)
from t

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

于 2013-01-15T15:15:40.643 回答
0

这将适用于 Oracle 以及 MySql 我认为:

SELECT SUBSTR('en_UK',INSTR('en_UK','_')+1) country FROM dual
/
于 2013-01-15T15:21:30.370 回答