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

How to combinate LIKE + IN in SQL or JPA

例如我有这个字符串:

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

并通过文字:opeltesla 我想 select 所有这些字符串。

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)%';
id | mytext               
-: | :--------------------
 1 | Tesla is good car    
 2 | Tesla is electric car
 4 | Opel is budget auto  

db<>fiddle here

如果你只有两个字符串 'Opel' 和 'Tesla',你不能只使用这个吗?

假设您的所有数据看起来都与您在 post 中表示的方式相同:

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

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

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