Yii2のクエリビルダを使ってWHERE句のLIKEを作る時、このように書くと
$rows = (new \yii\db\Query())
->select()
->from('user')
->where(['like', 'name', 'Smith'])
->limit(10)
->all();
生成されるSQLはこうなる。
SELECT * FROM `user` WHERE `name` LIKE '%Smith%';
LIKE条件の値の前後に’%’が付与されるので部分一致となる。
前方一致や後方一致にしたいときは文字列形式でWHEREを書く。
$rows = (new \yii\db\Query())
->select()
->from('user')
->where('name LIKE :name', [':name' => 'Smith%']) // 前方一致
->limit(10)
->all();
生成されるSQLは部分一致となる。
SELECT * FROM `user` WHERE `name` LIKE 'Smith%';