我不确定该怎么做:
我的数据库中有一个名为description
的列。我有一个关键字列表。我想选择描述中包含列表中至少一个字符串的行。
列表是字符串,描述的类型为TEXT。
我只是不想做一个做多个LIKE的可怕蛮力方法(因为我的列表目前有50个元素)。
答案 0 :(得分:0)
我认为您可以使用这样的SQL查询(只是我即时编写):
WITH tags(tag) AS (
SELECT * FROM (VALUES ('tag1'),('tag2'),('tag3'),('tag4')) AS tags(tag))
SELECT DISTINCT description
FROM tbl
WHERE (description LIKE '%' || tag || '%');
您可以插入列表而不是('tag1'),('tag2'),('tag3'),('tag4')
。你需要像"(" + replace(yorTagString, ",", "),(") + ")"
这样的东西。