Я хочу адаптировать запрос MySQL к postgreSQL

Я пытаюсь создать браузер для видео на своей странице, используя Yii2 и PostgreSQL, и у меня есть справочный код для MySQL. Я понимаю, что функция "andWhere" генерирует SQL-запрос с учетом кода MySQL.

Запрос, который я пытаюсь преобразовать в файл php:

   SELECT title
   FROM video
   WHERE to_tsvector(title || ' ' || tags) @@ to_tsquery(:keyword)

И эталонный код для MySQL:

return $this->andWhere("MATCH(title, description, tags)
AGAINST (:keyword)", ['keyword' => $keyword]);

Пожалуйста, помогите, я застрял.

🤔 А знаете ли вы, что...
PHP имеет множество фреймворков, упрощающих разработку веб-приложений, таких как Laravel и Symfony.


100
1

Ответ:

Решено

ActiveRecord помогает писать запросы, не зависящие от базы данных.

ActiveRecord позволяет вам писать запросы, не беспокоясь о поддержке базы данных. Вы даже можете изменить ядро ​​базы данных, используемое вашим приложением, без необходимости изменять ваши запросы.

Этот код должен работать для вашего варианта использования

$this->where(['or', 
    ['like', 'title', $keyword],
    ['like', 'description', $keyword],
    ['like', 'tags', $keyword]
]);

Я не уверен, почему вы используете andWhere() в своем вопросе, если у вас уже есть where() выше в вашем методе, используйте andWhere.

В документации Yii2 есть хорошая страница о том, как указывать условия запроса.