删除行和特定条件
delete rows and specific condition
我正在尝试执行类似 this 的操作,但我一直收到 "HELLO" 列不存在的错误。我正在尝试 运行 的查询是:
delete from lib."table1" where "word"<>"HELLO" and "Language"="English"
本质上,我试图删除 "Language" 列中包含英文的所有行,但不删除 "word" 列中包含 "HELLO" 的行。因此,它应该跳过 Language = English 和 word = HELLO 的行,但删除所有其他语言为 English in Language 或 HELLO in word 的行。我究竟做错了什么? (如果我取出 "word...ELLO" 部分,它工作正常但删除每个英文行)。
对字符串文字使用单引号,对列名使用双引号:
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';
对于 postgres,双引号不用于字符串,而是用于列名等
delete from lib."table1" where "word"!='HELLO' and "Language"='English'
我正在尝试执行类似 this 的操作,但我一直收到 "HELLO" 列不存在的错误。我正在尝试 运行 的查询是:
delete from lib."table1" where "word"<>"HELLO" and "Language"="English"
本质上,我试图删除 "Language" 列中包含英文的所有行,但不删除 "word" 列中包含 "HELLO" 的行。因此,它应该跳过 Language = English 和 word = HELLO 的行,但删除所有其他语言为 English in Language 或 HELLO in word 的行。我究竟做错了什么? (如果我取出 "word...ELLO" 部分,它工作正常但删除每个英文行)。
对字符串文字使用单引号,对列名使用双引号:
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';
对于 postgres,双引号不用于字符串,而是用于列名等
delete from lib."table1" where "word"!='HELLO' and "Language"='English'