在Postgres中,如何通过UUID类型的列进行选择

Cli*_*ood 13 postgresql uuid

我有一个其他人创建的数据库表,它的 PK 是“uuid”类型的单列。我正在努力按该列执行简单的选择。我尝试过但没有成功的例子:

select from site where id = "9d4da323-4c20-360f-bd9b-ec54feec54f0"

select from site where id = UUID('9d4da323-4c20-360f-bd9b-ec54feec54f0')

select from site where id::text = '9d4da323-4c20-360f-bd9b-ec54feec54f0'

正确的语法是什么?

Cli*_*ood 13

一位同事启发了我:这是字符串文字周围的双引号。正确的语法是:

select from site where id = '9d4da323-4c20-360f-bd9b-ec54feec54f0'

我正在回答我自己的问题,希望这对其他人有帮助。

  • 是的,确实如此,并且您的问题并不特定于 UUID 类型,如果您使用双引号,您在所有其他情况下都会遇到问题。因此,请勿使用双引号:-) 请参阅以下资源以获取进一步说明:/sf/ask/2897733681/ Between-single-quotes-and-double- quote-in-postgresql ,https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html 和 http://blog.lerner.co.il/quoting-postgresql/ (3认同)
  • 请务必将您的答案标记为正确 - 这也将帮助其他人找到它(但没有分数:-)) (2认同)