如何基于字符串id删除PostgreSQL数据库中的多行?
因此,我有下表:如何基于字符串id删除PostgreSQL数据库中的多行?,sql,postgresql,types,Sql,Postgresql,Types,因此,我有下表: 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;
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;
我得到以下错误:
这是因为列的
id
类型为varchar
,而不是整数。您可以通过将其强制转换为整数来解决此问题,如下所示:
delete from api_member
where CAST(id as integer) between 0 and 10;
如果行数较大,则此操作可能太慢。考虑将<代码> ID>代码>列的类型更改为数字类型。永远不要在<代码> VARCHAR < /代码>列中存储数字。您遇到的问题直接源于错误的设计决策。
delete from api_member
where CAST(id as integer) between 0 and 10;