我正在尝试执行this之类的操作,但我不断收到“HELLO”列不存在的错误。我想要运行的查询是:
delete from lib."table1" where "word"<>"HELLO" and "Language"="English"
基本上我试图删除“语言”列中包含英语的所有行,但不删除“word”列中包含“HELLO”的行。因此它应该跳过Language = English和word = HELLO的行,但是删除所有其他行,其中包括语言中的英语或单词中的HELLO。我究竟做错了什么? (如果我拿出“word ... ELLO”部分,它可以正常工作但删除每一个英文行)。
答案 0 :(得分:3)
对于postgres,双引号不用于字符串,而是用于列名等
delete from lib."table1" where "word"!='HELLO' and "Language"='English'
答案 1 :(得分:2)
对字符串文字使用单引号,对列名使用双引号:
delete from lib."table1" where word <> 'HELLO' and Language = 'English';
旁注:如果你想保留列中包含单词的英语行(例如匹配'Hello World'),那么你可能想要使用not like
运算符来代替:
delete from table1
where word not like concat('%','HELLO','%') and Language = 'English';