MySQLで列の文字列値に特定の文字列が含まれているかどうかを確認する方法
CONCAT()とLIKE演算子を使った文字列の部分一致チェック
MySQLである列(カラム)内の文字列値に、特定の文字列が含まれているかどうかを確認したい場合は、CONCAT()関数をLIKE演算子と組み合わせて使用します。これにより、双方向の一致チェックが可能になります。
まずはサンプル用のテーブルを作成してみましょう。
mysql> create table DemoTable
(
Name varchar(40)
);
Query OK, 0 rows affected (0.56 sec)
次に、INSERTコマンドを使ってテーブルにレコードを挿入します。
mysql> insert into DemoTable values('John');
Query OK, 1 row affected (0.33 sec)
mysql> insert into DemoTable values('Adam');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('Bob');
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values('Johnson');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('David');
Query OK, 1 row affected (0.12 sec)SELECT文を実行して、テーブル内のすべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
上記のクエリを実行すると、次のような出力が得られます。
+---------+
| Name |
+---------+
| John |
| Adam |
| Bob |
| Johnson |
| David |
+---------+
5 rows in set (0.00 sec)
特定の文字列が含まれているかを確認するクエリ
以下が、列の文字列値のいずれかに特定の文字列「Joh」が含まれているかどうかを確認するためのクエリです。
mysql> select *from DemoTable where Name like "%Joh%" OR "Joh" LIKE CONCAT("%", Name, "%");実行結果は以下の通りです。
+---------+
| Name |
+---------+
| John |
| Johnson |
+---------+
2 rows in set (0.00 sec)
クエリの仕組み
このクエリでは、2つの条件をORで組み合わせています。
1つ目の条件: Name LIKE "%Joh%" — 列の値の中に検索文字列「Joh」が含まれているかをチェックします。例えば「Johnson」のように、列の値が検索文字列よりも長い場合に一致します。
2つ目の条件: "Joh" LIKE CONCAT("%", Name, "%") — 逆に、検索文字列の中に列の値が含まれているかをチェックします。例えば列の値が「Jo」の場合、「Joh」の中に「Jo」が含まれるため一致します。
このようにCONCAT()で列の値の前後にワイルドカード(%)を連結することで、部分一致だけでなく、検索文字列側に列の値が含まれるケースにも対応できる柔軟な検索が実現できます。
-
MySQLで特定のカラムのデータをエクスポートする方法(INTO OUTFILEの使い方)
MySQLで特定のカラムのデータをエクスポートする方法 MySQLでテーブルから特定のカラム(列)のデータだけをファイルに書き出したい場合は、SELECT文とINTO OUTFILEを組み合わせるのが最もシンプルで確実な方法です。この記事では、実際にテーブルを作成し、データを投入したうえで、特定のカラムをテキストファイルへエクスポートする手順を順番に解説します。 基本構文 特定のカラムをファイルに出力する際の基本構文は次のとおりです。 select yourColumnName from yourTableName into outfile yourLocationOfFile; このように
-
PHPで文字列に特定の部分文字列が含まれているか確認する方法
文字列に特定の部分文字列(サブストリング)が含まれているかどうかを確認するには、PHPの「strlen」関数と「strpos」関数を組み合わせて使用します。「strlen」は文字列全体の長さを取得する関数で、「strpos」は部分文字列が文字列内で最初に出現する位置を検索する関数です。サンプルコード<?php $str_1 = thisisasample; $str_2 = asample; if (strpos($str_1, $str_2) >= 0 && strpos($str_1, $str_2) < strlen($str_1