sql - 如何选择以列表中找到的任何单词开头的行?
问题描述
我有一个名为 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 ""
解决方案
您可以使用or
:
where category like 'Fruit%' or category like 'Dairy%'
SQLite 具有支持正则表达式的扩展。如果您正在使用它:
where category regexp '^(Fruit|Dairy)'
推荐阅读
- node.js - 部署到 nginx Web 服务器时出现 502 bad gateway 错误
- php - Laravel 在数据库事务中将 id 设置为另一个表
- html - 表格内容的对齐方式
- concurrency - 关系信号量、互斥体、监视器、测试和设置和消息传递
- oracle - 创建视图时权限不足错误
- python - Jupyter Notebook 小部件:如何制作“键入时过滤”文本框?
- fedora - 如何在 Amazon Fedora EC2 实例中找出我想用 Yum 删除的包的名称
- asp.net-core - 如何在 .Net Core 中返回错误状态代码 401 的自定义错误消息?
- ios - 表达式类型“@lvalue CGFloat”在没有更多上下文的情况下模棱两可
- git - 如何将主分支推送到另一个分支?