指定LIKE子句可以查看的位置

时间:2019-04-17 12:39:52

标签: mysql sql

我想使用LIKE子句来帮助搜索功能。 根据网站上的用户,用户将有一个名称,该名称我想指定在数据库中查找的位置。

如果我有一个这样的表: 名称:数据

username - score - id
Erik     - 15    - 1     
John     - 10    - 2
John     - 12    - 3
Erik     - 15    - 4
Philip   - 13    - 5
Patrik   - 15    - 6
Patrik   - 17    - 7
Patrik   - 8     - 8
Erik     - 9     - 9
SELECT username, score, id, FROM stats WHERE id 
LIKE'%".search."%'
OR username LIKE'%".search."%'
OR score LIKE'%".search."%'
AND username = 'Erik';

现在发生的事情是,如果我搜索erik,它将返回erik和patrik,因为rik进入了用户名搜索;如果我输入15,它还将返回Erik和patriks值

有没有一种方法可以覆盖它,因此当我将WHERE username = erik放进去时,它将仅在具有该用户名值的行上使用Like子句,而不会遍历整个表

1 个答案:

答案 0 :(得分:1)

由于我的评论起作用了,这是建议的解决方法。

您需要在所需的层次结构中加上括号。

SELECT username, score, id 
FROM stats 
WHERE (id LIKE'%".search."%'
OR username LIKE'%".search."%'
OR score LIKE'%".search."%')
AND username = 'Erik';