我想使 MySQL 查询适应 postgreSQL
I want to adapt a MySQL query to postgreSQL
我正在尝试使用 Yii2 和 PostgreSQL 为我页面中的视频创建一个浏览器,我的参考代码是 MySQL。我知道函数“andWhere”在给定 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 文档中有关于如何指定查询条件的nice page。
我正在尝试使用 Yii2 和 PostgreSQL 为我页面中的视频创建一个浏览器,我的参考代码是 MySQL。我知道函数“andWhere”在给定 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 文档中有关于如何指定查询条件的nice page。