PHP | MySQLのWHERE句のLIKEで部分一致、前方一致、後方一致を指定する方法
MySQLのWHERE句で部分一致、前方一致、後方一致を指定する方法とPHPサンプルコードを紹介しています。
確認環境
エックスサーバー
PHP 8.016
name | value |
---|---|
Apple | 100 |
Pine | 200 |
Banana | 300 |
Orange | 400 |
WHERE句で部分一致
WHERE句で部分一致を実装するにはLIKE句を使って一致させたい語句を「%」で囲います。
以下のサンプルでは「a」を含むデータを検出していますので「Apple」「Banana」「Orange」がヒットします。
// クエリ
$sql = "SELECT * FROM `table_name` WHERE `name` LIKE '%a%'";
// クエリを実行
$res = $mysqli->query($sql);
while ($dat = $res->fetch_assoc()) {
echo $dat['name'] . ' ';
}
// Apple Bnana Orange
大文字小文字を区別する場合はBINARY演算子を利用します。
以下のサンプルの場合「Apple」の「A」は大文字ですのでヒットせず、小文字の「a」を含む「Banana」と「Orange」がヒットします。
// クエリ
$sql = "SELECT * FROM `table_name` WHERE `name` LIKE '%a%'";
// クエリを実行
$res = $mysqli->query($sql);
while ($dat = $res->fetch_assoc()) {
echo $dat['name'] . ' ';
}
// Bnana
WHERE句で前方一致
LIKE句は検索語句に付ける「%」を右側だけにする事で前方一致にする事が可能です。
以下のサンプルでは「A」から始まるデータのみを検出していますので「Apple」がヒットします。
もともとテストデータにはAはAppleしか含まれていませんが。
$sql = "SELECT * FROM `table_name` WHERE `name` LIKE 'A%'";
// クエリを実行
$res = $mysqli->query($sql);
while ($dat = $res->fetch_assoc()) {
echo $dat['name'] . ' ';
}
// Apple
WHERE句で後方一致
LIKE句は検索語句に付ける「%」を左側だけにする事で後方一致にする事が可能です。
以下のサンプルでは末尾が「e」のデータのみを検出していますので「Apple」「Pine」「Orange」がヒットします。
$sql = "SELECT * FROM `table_name` WHERE `name` LIKE '%e'";
// クエリを実行
$res = $mysqli->query($sql);
while ($dat = $res->fetch_assoc()) {
echo $dat['name'] . ' ';
}
// Apple PINE Orange
ディスカッション
コメント一覧
まだ、コメントがありません