odeの開発メモ日記

プログラマーやってます。今までの道のり ポケコンbasic→C(DirectX5 ネットやろうぜ)→Perl(ちょろっと)→Java→C#→Ruby→Android(Java)

sqlでlastIndexOf, rindexを行う


下記でできた。

LENGTH(col1) - INSTR(REVERSE(col1), '#')

指定文字列の前か後の文字列を抜き出す場合

対象文字列 : hoge#hoge2#end

endを抜く (最後の#より後を抜くSQL) (簡単)

SELECT
  SUBSTRING_INDEX(col1, '#', -1)
FROM
  (SELECT 'hoge#hoge2#end' col1) t

hoge#hoge2を抜く (最後の#より後を抜くSQL) (めんどいが下記でできる)

SELECT
  SUBSTRING(col1, 1, LENGTH(col1) - INSTR(REVERSE(col1), '#'))
FROM
  (SELECT 'hoge#hoge2#end' col1) t

実行環境

mysql4.1