SQLiteでは、instr()
を使用できます 文字列内の特定の文字の位置を返す関数。
この関数は、文字の最初の出現位置(存在する場合)のみを返します。
文字が見つからない場合は、0を返します。
引数のいずれかがNULLの場合、NULLを返します。
仕組み
instr()
関数は2つの引数を受け入れます。最初の引数は文字列で、2番目の引数はその文字列内で検索する文字です。
引数が両方ともBLOBの場合、2番目の引数が最初に出現する前のバイト数より1多い数を返します。最初の引数内のどこにも出現しない場合は、0を返します。
構文は次のようになります:
inst(X,Y)
-
X
文字列です -
Y
キャラクターです
例
実例を示します。
SELECT instr('Black cat', 'a');
結果:
3
ここで、 aという文字の場所が必要でした 。
この場合、文字は2回表示され、instr()
最初に出現した場所を返します。
データベースの例
この例では、次の表を使用します。
ProductId ProductName Price ---------- ------------- ---------- 1 Widget Holder 139.5 2 Blue Widget 10.0 3 Red Widget 10.0 4 Green Widget 10.0 5 Widget Stick 89.75 6 Foo Cap 11.99
製品名を検索します 手紙の列。
SELECT
ProductName,
instr(ProductName, 'd')
FROM Products;
結果:
ProductName instr(ProductName, 'd') ------------- ----------------------- Widget Holder 3 Blue Widget 8 Red Widget 3 Green Widget 9 Widget Stick 3 Foo Cap 0
最後の行には文字がないため、 0 その行に対して返されました。
NULL値
前述のように、引数のいずれかがNULLの場合、NULLが返されます。
SELECT
instr(NULL, 'a'),
instr('Black cat', NULL);
結果:
instr(NULL, 'a') instr('Black cat', NULL) ---------------- ------------------------