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

このリンクを確認してくださいMySQLSTRING関数

于 2013-01-15T15:11:09.353 に答える
0

簡単な方法は次のとおりです。

select distinct left(s_name, 2)
from t

これは、言語名が左の2文字であることを前提としています。

于 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 に答える