我正在尝试使用Yii2和PostgreSQL为我的页面中的视频制作浏览器,我的参考代码是MySQL。我理解函数";以及Where";在给定MySQL代码的情况下生成SQL查询。
我试图在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]);
请帮帮我,我被卡住了。
ActiveRecord可以帮助您编写与数据库无关的查询
ActiveRecord允许您编写查询,而不必担心支持的数据库。您甚至可以更改应用程序使用的数据库引擎,而无需修改查询。
此代码应该适用于您的用例
$this->where(['or',
['like', 'title', $keyword],
['like', 'description', $keyword],
['like', 'tags', $keyword]
]);
我不知道你为什么在问题中使用andWhere()
,如果你的方法中已经有一个更高的where()
,那么就使用andWhere
。
Yii2文档有一个很好的页面,介绍如何指定查询条件。