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
このリンクを確認してくださいMySQLSTRING関数
簡単な方法は次のとおりです。
select distinct left(s_name, 2)
from t
これは、言語名が左の2文字であることを前提としています。
これは、OracleだけでなくMySqlでも機能すると思います。
SELECT SUBSTR('en_UK',INSTR('en_UK','_')+1) country FROM dual
/