指定LIKE子句可以查看的内容

问题描述 投票:0回答:1

我想使用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子句而不读取整个表

mysql sql
1个回答
1
投票

由于我的评论有效...这是建议的解决方案。

您需要在所需的层次结构周围放置括号。

SELECT username, score, id 
FROM stats 
WHERE (id LIKE'%".search."%'
OR username LIKE'%".search."%'
OR score LIKE'%".search."%')
AND username = 'Erik';
© www.soinside.com 2019 - 2024. All rights reserved.