Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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
Sql postgres对多个单词使用类似的_Sql_Postgresql - Fatal编程技术网

Sql postgres对多个单词使用类似的

Sql postgres对多个单词使用类似的,sql,postgresql,Sql,Postgresql,我知道类似的关键字可以使用如下: SELECT * from table WHERE column SIMILAR TO '(AAA|BBB|CCC)%'; 在这里,查询获取包含AAA、BBB或CCC的所有列。据我所知,它的作用是AAA或BBB或CCC。如果这是正确的,那么我如何实现需要AAA、BBB和CCC的情况。我查阅了文档,但没有具体说明如何做到这一点。我需要得到与所有给定字符串相似的所有列 提前感谢。我不是说性能,但我认为语法很接近-只需要在每个备选方案中添加通配符: db=# wit

我知道类似的关键字可以使用如下:

SELECT * from table WHERE column SIMILAR TO '(AAA|BBB|CCC)%';
在这里,查询获取包含AAA、BBB或CCC的所有列。据我所知,它的作用是
AAA或BBB或CCC
。如果这是正确的,那么我如何实现需要
AAA、BBB和CCC
的情况。我查阅了文档,但没有具体说明如何做到这一点。我需要得到与所有给定字符串相似的所有列


提前感谢。

我不是说性能,但我认为语法很接近-只需要在每个备选方案中添加通配符:

db=# with p(s) as (values('aaaxx'),('bbbxxx'),('cccxxx'),('dddxxx'))
select s, s similar to '(aa%|bb%)' from p;
   s    | ?column?
--------+----------
 aaaxx  | t
 bbbxxx | t
 cccxxx | f
 dddxxx | f
(4 rows)

写三个条件,并用
连接@laurenzal,它们类似于“AAA”,类似于“BBB”,类似于“CCC%”。这就是你的意思吗?应该是
,其中col类似于'AAA',col类似于'BBB',col类似于'CCC'
。虽然在这种情况下,你应该使用
列,如'AAA%'和列,如'BBB%'
等,因为这比正则表达式快。@eurotrash我看不到在返回值时也会引入通配符