Postgresql Postgres regex子字符串或regexp\u匹配

Postgresql Postgres regex子字符串或regexp\u匹配,postgresql,Postgresql,在过去的几天里,我一直在努力思考以下问题 表1:同义词 Id Synonym code ------------------------------ 1 Car Tyre 001 2 Bike Tyre 002 3 Cycle Tyre 003 4 Hammer Tube 001 现在我的输入='使用来自Hammer Tube AUDI 2000的汽车轮胎'

在过去的几天里,我一直在努力思考以下问题

表1:同义词

Id         Synonym       code

------------------------------
1          Car Tyre      001

2          Bike Tyre     002

3          Cycle Tyre    003

4          Hammer Tube   001
现在我的输入='使用来自Hammer Tube AUDI 2000的汽车轮胎'

输出=两次列出代码“001”,因为输入文本同时包含“汽车轮胎”和“液压锤管”

当我尝试下面的查询时,它只显示一次,但我需要两次

Select * from synonym where 'WITH CAR TYRE FROM Hammer Tube AUDI 2000' ~ Synonym;
position()
lower()
结合使用:


汽车轮胎在大写字母中。你们确定它会给你们两个结果吗?大小写不是问题,若它是小写也没问题,但我需要两个结果。请帮帮我,阅读9.7.3。然后您将在那里获得更多信息。谢谢,它工作得非常好,在这个场景中,现在我需要具有count的唯一行。。
with synonym(id, synonym, code) as (
values
    (1, 'Car Tyre', '001'),
    (2, 'Bike Tyre', '002'),
    (3, 'Cycle Tyre', '003'),
    (4, 'Hammer Tube', '001')
)

select *
from synonym
where position(lower(synonym) in lower('WITH CAR TYRE FROM Hammer Tube AUDI 2000')) > 0

 id |   synonym   | code 
----+-------------+------
  1 | Car Tyre    | 001
  4 | Hammer Tube | 001
(2 rows)