Like 谓词只匹配整个单词

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 中有效的最短答案。