instr はインデックス作成用に like を置き換えます

-作成日: 2012-08-20
-作成目的: instr() 関数、特殊な使用法、like の代わりに

instr()の戻り値は親文字内で対象の文字(文字列)が最初に出現する位置なので整数になります。

例えば:

instr("efabcdefg", "e") の結果は当然 1 です。 instr(2, "efabcdefg", "e") の結果は 7 です。 instr(5, "efabcdefg", "a")
の結果は
) は 0
instr(" efabcdefg", "k") 結果も 0

instr は組み込み関数であり、インデックスを付けることができ、優れたパフォーマンスを発揮します。

like は必ずしも like であるとは限りません。like '%iii%' にはインデックスが作成されませんが、like 'ik%' にはインデックスが作成されます。

例:
like の代わりに:
SELECT code, name, dept,occupation FROM Staff WHERE instr(code, '001') > 0; SELECT code, name, dept,occupation FROM Staff WHERE code LIKE '%001%'; と
同等です。

代替:
SELECT コード , 名前 , 部門, 職業 FROM スタッフ WHERE コード IN ('A10001','A10002');
等と同じ
SELECT コード , 名前 , 部門, 職業 FROM スタッフ WHERE instr('A10001,A10002',code)> 0

おすすめ

転載: blog.csdn.net/mmmmm44444/article/details/132227757