SQL文:LIKEと%型:日付だけで絞り込みし、時・分・秒は絞り込み対象にしない

目次

[ズバリ結論!] LIKEと%の使い方

$stmt = $pdo->prepare('SELECT * FROM tablename WHERE columnname LIKE ? ORDER BY reg_date');
$date_join = '%' . $bind_date  . '%';
$stmt->bindParam(1, $date_join , PDO::PARAM_STR);

何ができる?

データベースの中の、あるカラムにおいて同じ文字列が含まれるレコードだけを取得するなど。

使用例

DATE型のカラムで、ある日のデータのレコードだけを取得したいが、DATE型は時間までくっついているため、そのまま日だけを指定してSQLで絞り込みしても時・分・秒まで一致したものを絞り込もうとするため、一致したデータはひとつもない、という結果になってしまう。

LIKEと%なら、てDATE型の時・分・秒の部分を%で繋げてあいまい検索を実行させられる。

「PDO::PARAM_STR」としているのは、SQLで取得したいカラムが文字列の型になるから。数値の場合なら「PDO::PARAM_INT」になる。

目次
閉じる