0

我正在将我的 MySQL 数据库迁移到 PostgreSQL。在将数据库连接到我的 Python 脚本时,我遇到了一些语法错误。那么您能否将此 MySQL 查询转换为 PostgreSQL:

select ifnull((select ifnull(run_id,0) from searchbank order by run_id desc limit 0,1),0)
4

2 回答 2

2

Postgres 不支持 ifnull:

select coalesce((select coalesce(run_id,0)
                 from searchbank
                 order by run_id desc limit 0,1),0
               )

你可能会发现这个版本稍微干净一些:

select coalesce(max(run_id), 0)
from searchbank
于 2012-08-04T18:12:49.347 回答
1

更简单:

SELECT COALESCE((SELECT max(run_id) FROM searchbank), 0);

像这样的查询的唯一要点是如果没有行则返回0而不是没有行。searchbank

移除外部SELECT- 就像@Gordon 演示的那样 - 取消了这种效果并且是完全错误的。

于 2012-08-05T01:44:12.717 回答