Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL删除行,其中等于由逗号分隔的字符串_Sql_String_Postgresql_Csv_Sql Delete - Fatal编程技术网

PostgreSQL删除行,其中等于由逗号分隔的字符串

PostgreSQL删除行,其中等于由逗号分隔的字符串,sql,string,postgresql,csv,sql-delete,Sql,String,Postgresql,Csv,Sql Delete,我是SQL的初学者,我希望通过执行查询来删除一些行 例如,我有一个表: ID │ Type │ ─────────────────────────┼───────────────────────────┼ 220 │ aaa │ 220 │ bbb

我是SQL的初学者,我希望通过执行查询来删除一些行

例如,我有一个表:

     ID                  │           Type            │ 
─────────────────────────┼───────────────────────────┼
 220                     │ aaa                       │ 
 220                     │ bbb                       │
 220                     │ ccc                       │ 
 220                     │ ddd                       │ 
 220                     │ eee                       │ 
 220                     │ fff                       │ 
我有一个用逗号分隔的字符串:

aaa、bbb、fff、ddd

我希望删除ID为220且类型等于字符串中某个值的所有行

我该怎么办呢


非常感谢

一个选项将字符串拆分为一个数组,然后使用
any()


如果字符串的逗号后面确实包含空格,则可能需要
regexp\u split\u to\u数组(…,'\s*,\s*)
。如前所述,该数组中的第二个元素将是
'bbb'
而不是
'bbb'
@a\u horse\u和\u no\u名称:如果逗号后面始终跟一个空格,它会工作吗?有趣。似乎前导空间确实被移除了。但是尾随空格不是:@a_horse_,没有名字;是的,我想是因为在你的例子中空格是一致的。如果我们有
('aaa,bbb,fff,ddd)
,那么我们可以使用
,'
。我相信您正在寻找这个:,特别是字符串到数组。
delete 
from mytable 
where id = 220 and type = any(string_to_array('aaa, bbb, fff, ddd', ', ' ))