yii2 - как найти все значения в таблице БД по трем последним символам?

Так можно сделать?

Можно ли как-то в Yii2 написать запрос к БД, который находит все значения по трем последним символам строки в колонке таблице?

Вот в примере, найдутся все строки таблицы, у которых в колонке 'CODE' 000. Test::find()->where(['CODE' => '000'])->all();

А нужно, чтобы нашлись все строки, у которых в колонке 'CODE' 000 - были тремя последними символами.

Так можно сделать?)


Ответы (2 шт):

Автор решения: dkrech07

Для решения задачи подойдет метод 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();
→ Ссылка