【发布时间】:2022-01-21 19:41:26
【问题描述】:
我有一个数据库表,其中包含带撇号的电子邮件地址,例如“some.o'ne@somewhere.com”。
我想:
- 查询该表,检查该邮箱是否存在
- 如果表格中不存在此电子邮件地址,请插入此电子邮件地址
我试过了:
SELECT *
FROM EMAILTABLE
WHERE emailaddress LIKE 'some.o''ne@somewhere.com'
它没有找到"some.o'ne@somewhere.com",所以它把它当作它不存在!
【问题讨论】:
-
嗯,
some.o''ne@somewhere.com与"some.o'ne@somewhere.com"不同。如果您的列包含双引号,显然您需要将它们包含在比较值中。另外:LIKE 在这里没有任何意义,因为您没有使用任何通配符,所以它与=相同 -
我刚刚使用 dbeaver-ce 作为客户端在 postgres 数据库中测试了您的示例。它工作得很好。如果遇到问题,请尝试使用 \' 而不是 ' 来转义单引号
-
Works for me. 正如其他人已经评论的那样,双引号是数据的一部分,还是您在文本中使用它们来逐字分隔值?
-
数据库包含单引号,无法更改数据库。当双引号查询数据库时,它没有找到带有单引号的电子邮件地址!我也尝试使用 \' 但它失败了!
标签: sql postgresql sql-like string-constant