Far*_*had 6 sqlite select like
我有一个 SQLite 数据库,其中有一个名为minecraft
.
+----+----------------------+
| id | name |
+----+----------------------+
| 1 | Pocket Mine MP |
| 2 | Open Computers |
| 3 | hubot minecraft skin |
| 4 | Terasology |
| 5 | msm |
+----+----------------------+
Run Code Online (Sandbox Code Playgroud)
我需要找到所有在其“名称”字段中包含“e”和“o”的记录。这是我的选择查询:
select * from minecraft where name like '%e%o%'
Run Code Online (Sandbox Code Playgroud)
以下是上述查询的结果:
+----+----------------+
| id | name |
+----+----------------+
| 2 | Open Computers |
| 4 | Terasology |
+----+----------------+
Run Code Online (Sandbox Code Playgroud)
问题是 Like 谓词匹配整个值,而不是单词。不应该匹配 id = 2 的行,因为所有条件都没有出现在一个单词中('e' 出现在第一个单词中,'o' 出现在另一个单词中):Op e n C o mputers.
我应该如何更改我的 Select 查询,以便它与单个单词中带有“e”和“o”的唯一行匹配?
+----+------------+
| id | name |
+----+------------+
| 4 | Terasology |
+----+------------+
Run Code Online (Sandbox Code Playgroud)
谢谢
ind*_*ago -1
您的查询的解决方案将只是一个简单的查询,
select id, name from minecraft
where name like '%e%o%' and instr(trim(name),' ')=0
Run Code Online (Sandbox Code Playgroud)
这是在 sqlite 中有效的最短答案。
归档时间: |
|
查看次数: |
3129 次 |
最近记录: |