所以我有下表:
qliu=# select id from api_member;
id
-----
242
236
246
251
253
9
21
185
49
188
我希望能够使用如下命令删除具有一系列 id 的行:
delete from api_member where id between '0' and '10';
但它什么也没有删除。另外如果你想知道
delete from api_member where id between 0 and 10;
我收到以下错误:
ERROR: operator does not exist: character varying >= integer LINE 1: delete from api_member where id between 0 and 10; ^ HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
最佳答案
这是因为您的列的 id
是 varchar
类型,而不是整数。您可以通过将其转换为 integer
来解决此问题,如下所示:
delete from api_member
where CAST(id as integer) between 0 and 10;
如果行数很大,这个操作可能会太慢。考虑将 id
列的类型更改为数字类型。
关于sql - 如何根据字符串 id 删除 PostgreSQL 数据库中的多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25001151/