gpt4 book ai didi

mysql - 生成一个使用排除记录进行搜索的查询

转载 作者:行者123 更新时间:2023-11-29 18:17:33 25 4
gpt4 key购买 nike

我在 mysql 中遇到一个问题,无法生成可在 website 中使用的良好查询。我正在做的是,如果用户登录网站并尝试使用 first_namelast_nameusername 等关键字搜索已注册的用户然后我想返回结果,排除正在搜索的用户记录。这是包含数据的 users 表。

+----+-----------------+----------+------------+-----------+
| id | email | username | first_name | last_name |
+----+-----------------+----------+------------+-----------+
| 1 | jim@example.com | jim | Jim | John |
+----+-----------------+----------+------------+-----------+
| 2 | doe@example.com | doe | Doe | John |
+----+-----------------+----------+------------+-----------+
| 3 | tim@a.com | tim | Tim | John |
+----+-----------------+----------+------------+-----------+

假设具有 id 1 的用户正在搜索,并且他使用诸如 john 之类的关键字进行搜索,我正在使用该查询来排除该用户的记录是

SELECT *
FROM
`users`
WHERE
`id` <> 1 AND CONCAT(`first_name`, ' ', `last_name`) LIKE "%john%" OR `username` LIKE "%john%"

然后mysql给出这样的结果。

+----+-----------------+----------+------------+-----------+
| id | email | username | first_name | last_name |
+----+-----------------+----------+------------+-----------+
| 2 | doe@example.com | doe | Doe | John |
+----+-----------------+----------+------------+-----------+
| 3 | tim@a.com | tim | Tim | John |
+----+-----------------+----------+------------+-----------+

但是当我使用id 1的用户名进行搜索时,为什么mysql不排除该记录

SELECT *
FROM
`users`
WHERE
`id` <> 1 AND CONCAT(`first_name`, ' ', `last_name`) LIKE "%jim%" OR `username` LIKE "%jim%"

输出结果:

+----+-----------------+----------+------------+-----------+
| id | email | username | first_name | last_name |
+----+-----------------+----------+------------+-----------+
| 1 | jim@example.com | jim | Jim | John |
+----+-----------------+----------+------------+-----------+

最佳答案

这只是你的和/或中的括号问题:

 `id` <> 1 AND ( CONCAT(`first_name`, ' ', `last_name`) LIKE "%jim%" 
OR `username` LIKE "%jim%" )

关于mysql - 生成一个使用排除记录进行搜索的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46896294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com