yii2 - как найти все значения в таблице БД по трем последним символам?
Так можно сделать?
Можно ли как-то в Yii2 написать запрос к БД, который находит все значения по трем последним символам строки в колонке таблице?
Вот в примере, найдутся все строки таблицы, у которых в колонке 'CODE' 000. Test::find()->where(['CODE' => '000'])->all();
А нужно, чтобы нашлись все строки, у которых в колонке 'CODE' 000 - были тремя последними символами.
Так можно сделать?)
Ответы (2 шт):
Для решения задачи подойдет метод yii\db\ActiveRecord::findBySql():
https://www.yiiframework.com/doc/api/2.0/yii-db-activerecord#findBySql()-detail
Как-то так:
$sql = 'SELECT * FROM Test SUBSTRING(CODE, -3) IN (000)';
Test::findBySql($sql)->all();
Если это строка, то можно попробовать так:
Test::find()->where(['LIKE', 'CODE', '%000'])->all();