首頁 > 資料庫 > mysql教程 > Postgres 與 SQL Server:為什麼我的「WHERE IN (list)」查詢因無效的列引用而失敗?

Postgres 與 SQL Server:為什麼我的「WHERE IN (list)」查詢因無效的列引用而失敗?

Mary-Kate Olsen
發布: 2025-01-01 02:13:09
原創
176 人瀏覽過

Postgres vs. SQL Server: Why Does My

Postgres: "where in (list)" - 無效的列引用

在SQL Server 中,以下查詢將成功從基於ID列表的user_job_titles表:

DELETE FROM user_job_titles WHERE id IN (
"c836d018-1d12-4507-a268-a4d80d6d3f54",
"d0961a90-7d31-4c4c-9c1b-671115e3d833",
"62dda420-6e62-4017-b41d-205c0aa82ead"
)
登入後複製

但是,當嘗試時在Postgres 中執行此查詢時,會發生錯誤:

ERROR: column "c836d018-1d12-4507-a268-a4d80d6d3f54" does not exist
登入後複製

原因:

問題在於IN 中的ID 值使用雙引號條款。在 Postgres 中,雙引號被保留作為表名和列名的轉義字元。透過在 ID 周圍使用它們,Postgres 將它們解釋為對不存在列的引用,從而導致錯誤。

解決方案:

要解決此問題,請將雙引號和單引號:

DELETE FROM user_job_titles
    WHERE id IN ('c836d018-1d12-4507-a268-a4d80d6d3f54',
                 'd0961a90-7d31-4c4c-9c1b-671115e3d833',
                 '62dda420-6e62-4017-b41d-205c0aa82ead'
                );
登入後複製

透過使用單引號,ID 被解釋為字串常數,允許IN子句才能正確運作。

以上是Postgres 與 SQL Server:為什麼我的「WHERE IN (list)」查詢因無效的列引用而失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板