К сожалению после перехода с MySQL на PostgreSQL очень сложно сразу начать полноценно работать из-за маленьких но очень важных различий.
Вот к примеру самая важная возможность поиска с помощью LIKE, в MySQL мы спокойно применяли LIKE не задумываясь о регистре букв. Т.е. если мы вводим LIKE ‘%TEST%’, то вернуть могло tEst, TESt, test и т.п.
А вот в PostgreSQL дело обстоит совсем иначе, там важен регистр. В этом есть кстати и плюс, очень редко но бывают ситуации когда нужно искать с учетом регистра.
Если все же вам нужно искать без учета регистра можно воспользоваться следующим «лайф хаком», пример взят из моего проекта на Yii2:
1 |
$query->andFilterWhere(['like', 'lower(isin)', strtolower($this->isin)]) |
В PostgreSQL есть замечательная функция lower(), которая приводит то что внутри к нижнему регистру, тоже самое мы делаем с данными которые мы хотим искать с помощью strtolower() в php. Т.е. все что нам нужно это привести к нижнему регистру (можно и к верхнему) что мы ищем и среди чего мы ищем.