postgre如何在SQL或JPA中组合LIKE+IN



例如,我有以下字符串:

Tesla is good car
Tesla is electric car
Opel is budget auto

用词来说:opeltesla我想选择所有这些字符串。

SIMILAR TO将在中工作

CREATE TABLE tab1 (
"id" INTEGER,
"mytext" VARCHAR(21)
);
INSERT INTO tab1
("id", "mytext")
VALUES
('1', 'Tesla is good car'),
('2', 'Tesla is electric car'),
('4', 'Opel is budget auto');
SELECT * from tab1 WHERE mytext SIMILAR TO '(Opel|Tesla|VW)%';

如果你仅有的两个字符串是"欧宝"one_answers"特斯拉",你就不能直接使用它吗?

假设你的所有数据看起来都是你在帖子中表示的样子:

SELECT *
FROM your_table
WHERE your_field LIKE 'Tesla%' 
OR your_field LIKE 'Opel%'

为了能够有效地使用索引,查询如下:

SELECT ...
FROM tab
WHERE col LIKE ANY ('Tesla%', 'Opel%');

最新更新