私は以下の内容を含むいくつかのフィールドを持っています。私は私のクエリは、次のすべてのフィールドを満たしているが、以下の条件にしたい:条件が有効で文字列が抽出されたときのMySQLクエリ
まず、フィールド内
dot
とvipout
またはvipin
があるときだけ の間で文字列を抽出し、私はvipin3601.ym.ms
エキス の場合に意味します3601
、vipoutxxp1.ym.ms
の場合はxxp1
となる。秒、残りの状態では、存在するものを拾うだけです。
select provider from test group by provider; +------------------+ | provider | +------------------+ | 360-lay | | 382Com | | e-gus | | e-ggg-inbound | | ttthts | | inefthyther | | jfc | | kefdfoo | | vipin3601.ym.ms | | vipinstm.ym.ms | | vipout382.ym.ms | | vipoutils2.ym.ms | | vipoutiot.ym.ms | | vipoutxxp1.ym.ms | | vipoutqlm.ym.ms | | vipoutspm.ym.ms | | unknown | +------------------+ 18 rows in set (0.00 sec)
私のような何かを試してみました:
select left(provider,locate('.',provider)-1) from test group by provider;
をしかし、これは以下のように返し、これは私が欲しいものではありません。私は望む結果を得るためにそれを変更する方法を知らない。
ありがとうございました。
は、あなたの答えをありがとう! 'END AS result'とは何ですか?なぜ私たちはそれを書く必要がありますか? –
@MaryamPashmi 'CASE'文を終了するには' END'が必要です。 'AS result'の部分は、結果のフィールドのエイリアスを提供するだけです。このエイリアシングは必要ありません。 –
ok。どうもありがとうございます –