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 に答える