首页 > 解决方案 > 如何选择以列表中找到的任何单词开头的行?

问题描述

我有一个名为 Assets 的表,每一行都有一个名为 Category 的列。某些类别名称可能如下所示...

Fruit
Fruit-Apple
Fruit-Orange
Vegetable
Vegetable-Carrot
Vegetable-Lettuce
Dairy-Cheese
Dairy-Milk

如何选择所有以('Fruit' 或 'Dairy')开头的行?我通常会使用Like但我不知道在使用可能的模式列表进行过滤时如何使用它?

我希望我的查询结果是这样的:

Fruit
Fruit-Apple
Fruit-Orange
Dairy-Cheese
Dairy-Milk

此 SELECT 仅适用于完整的类别值匹配

SELECT tags FROM Assets WHERE category in ('Fruit','Dairy') AND tags is not ""

标签: sqlsqliteselectsql-like

解决方案


您可以使用or

where category like 'Fruit%' or category like 'Dairy%'

SQLite 具有支持正则表达式的扩展。如果您正在使用它:

where category regexp '^(Fruit|Dairy)'

推荐阅读