我正在将我的 MySQL 数据库迁移到 PostgreSQL。在将数据库连接到我的 Python 脚本时,我遇到了一些语法错误。那么您能否将此 MySQL 查询转换为 PostgreSQL:
select ifnull((select ifnull(run_id,0) from searchbank order by run_id desc limit 0,1),0)
我正在将我的 MySQL 数据库迁移到 PostgreSQL。在将数据库连接到我的 Python 脚本时,我遇到了一些语法错误。那么您能否将此 MySQL 查询转换为 PostgreSQL:
select ifnull((select ifnull(run_id,0) from searchbank order by run_id desc limit 0,1),0)
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
更简单:
SELECT COALESCE((SELECT max(run_id) FROM searchbank), 0);
像这样的查询的唯一要点是如果没有行则返回0
而不是没有行。searchbank
移除外部SELECT
- 就像@Gordon 演示的那样 - 取消了这种效果并且是完全错误的。