gpt4 book ai didi

mysql - 如何在SQL中搜索和排序结果

转载 作者:行者123 更新时间:2023-11-30 00:49:00 25 4
gpt4 key购买 nike

我需要创建一个查询,该查询在users表中搜索一个单词,并返回在其字段(用户名,名字,姓氏,...)中具有该单词的用户。
但是,该查询应该返回以前在所有用户中找到的,只有那些是我的朋友。
表格如下:

用户


用户名
名称

...


朋友


user_req
user_acc
状态(如果user_req和user_acc是朋友,则为1;如果有待处理的请求,则为0)


我做了这个查询,但是不起作用:

  $sql = "SELECT u.*"
. "FROM (SELECT * "
. "FROM `users` "
. "WHERE (`username` LIKE '%".$value."%' OR "
. "`email` LIKE '%".$value."%' OR "
. "`first_name` LIKE '%".$value."%' OR "
. "`last_name` LIKE '%".$value."%'"
. ") ORDER BY ".$order.") u"
. "INNER JOIN `friend` ON (`u.username` = `friend.user_acc`)"
. "WHERE `friend.user_acc` = ".$username." AND `friend.status = 1`";


我试图清除查询(尝试使字符为“ f”)并直接运行它,但是它不起作用。什么都不返回,它应该返回一些记录。

  SELECT u.*
FROM (
SELECT *
FROM `users`
WHERE (
`username` LIKE '%f%' OR
`email` LIKE '%f%' OR
`first_name` LIKE '%f%' OR
`last_name` LIKE '%f%' OR
`city` LIKE '%f%' OR
`gender` LIKE '%f%'
) ORDER BY `username`) u
INNER JOIN `friend` ON (u.`username` = friend.`user_acc`)
WHERE friend.`user_acc` = 'LP' AND friend.`status` = '1';


谢谢

最佳答案

怎么了

$sql = "
SELECT u.*
FROM users u
JOIN friend f
ON f.user_acc = u.username
WHERE ( username LIKE '%$value%' OR
email LIKE '%$value%' OR
first_name LIKE '%$value%' OR
last_name LIKE '%$value%'
)
AND f.user_acc = '$username'
AND f.status = 1
ORDER
BY $order;
";


...?

关于mysql - 如何在SQL中搜索和排序结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21138311/

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