LoginSignup
1
2

More than 3 years have passed since last update.

Laravel(Eloquent)でLIKE検索で濁点/半濁点を区別したい→LIKE BINARYを使う

Last updated at Posted at 2019-05-29

確認環境
・laravel v5.7.28
・MySQL 8.0
・PHP 7.3.0

MySQLのLIKEでは濁点/半濁点の区別を行いません。大文字と小文字の区別もしません。
厳密に一致させるときは、LIKE BINARY をつかいます。

ふつうのSQLではこう。

SELECT * FROM user WHERE name LIKE BINARY '%やまだ%;

Eloquentではこうやります。

$user->where('name','LIKE BINARY','%やまだ%');

以前はサポートされていなかったようですが
どこかのタイミングで修正されました。
https://github.com/laravel/framework/commit/76f6da4dab1e9e4847362a2b2b0c428e25805f0c#diff-cc3d43e01028390141596ae0da939930

サポートされていないバージョンを使用していて、アップデートはできないよという場合は
上記コミットと同じようにコードを修正すればOKです。(自己責任)

1
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2