MySQL INSTR() 関数

Mysql Instr Guan Shu



このチュートリアルでは、MySQL INSTR() 関数を使用して、特定の部分文字列が最初に出現する位置を特定する方法を学習します。

MySQL INSTR() 関数

instr() 関数を使用して、文字列と部分文字列を提供できます。この関数は、部分文字列がソース文字列に存在するかどうかを判断します。部分文字列が存在する場合、関数はソース文字列で部分文字列が最初に出現する位置を返します。

部分文字列がソース文字列に存在しない場合、関数は 0 を返します。







以下は、instr() 関数の構文を示しています。



INSTR(src_string, sub_string);

この関数は、次の 2 つの主要なパラメーターを受け入れます。



  1. src_string は、検索するソース文字列を参照します。
  2. sub_string は、検索する部分文字列を定義します。

instr() 関数は大文字と小文字を区別しないことに注意してください。したがって、この関数は、文字の大文字と小文字を無視して一致するパターンのみを検索します。





大文字と小文字を区別する検索を実行するには、二項演算子などの他のツールを使用できます。

関数の使用例

次の例は、instr() 関数を使用して特定の部分文字列を検索する方法を示しています。



SELECT INSTR('MySQL はすばらしいデータベース エンジンです', 'データベース') as pos;

上記の例は、ソース文字列から文字列「database」の開始位置を返します。この場合、次の出力に示すように、データベース文字列の位置は 21 です。

位置|

---+

21|

例 2

lower() または upper 関数を使用して、文字列を小文字または大文字に変換できます。これは、関数の大文字と小文字を区別する性質を克服するのに役立ちます。

例:

SELECT INSTR(lower('MySQL はすばらしいデータベース エンジンです'), lower('DATABASE')) as pos;

結果:

位置|

---+

21|

検索操作の前にソース文字列と部分文字列が小文字に変換されるため、これは最初の例と同様の値を返します。

例 3

以下の構文に示すように、テーブル列で instr() 関数を使用することもできます。

SELECT INSTR(列名, '部分文字列')

FROM テーブル名;

例:

CREATE TABLE ブログ (

id INT NOT NULL AUTO_INCREMENT 主キー、

タイトル VARCHAR(255) NOT NULL,

content TEXT NOT NULL,

date_posted DATE NOT NULL,

作成者 VARCHAR(255) NOT NULL

);

いくつかのデータを挿入します。

INSERT INTO ブログ (タイトル、コンテンツ、date_posted、作成者)

VALUES ('私の最初のブログ投稿', 'これは私の最初のブログ投稿の内容です.', '2022-12-09', 'Jane Doe');

INSERT INTO ブログ (タイトル、コンテンツ、date_posted、作成者)

VALUES ('私の 2 番目のブログ投稿', 'これは私の 2 番目のブログ投稿の内容です.', '2022-12-10', 'Jane Doe');

INSERT INTO ブログ (タイトル、コンテンツ、date_posted、作成者)

VALUES ('私の 3 回目のブログ投稿', 'これは私の 3 回目のブログ投稿の内容です.', '2022-12-11', 'Jane Doe');

ブログから * を選択します。

結果のテーブル:

次のように、instr() 関数を使用して、コンテンツ列の部分文字列「ブログ」の位置を取得できます。

ブログから title, instr(content, 'post') を選択します。

結果:

結論

このチュートリアルでは、MySQL で INSTR() 関数を使用して、文字列内の部分文字列の位置を見つける方法を学びました。関数は大文字と小文字を区別します。したがって、lower や upper などの関数を使用して、検索文字列を目的のケースに変換する必要がある場合があります。