[英]MySQLi: SELECT all users that are NOT in the user logged in friend array
我正在尝试从当前用户 (userLoggedIn) 好友数组中未被识别为好友的 dB 中随机选择用户。 我在朋友数组中有用户,如下所示:
,edith_copecky,eddie_sasnchez,jay_beagle,red_one,
当我打电话只提取那些朋友时,我使用以下内容:
$query = mysqli_query($con,"SELECT * FROM users WHERE friend_array LIKE '$username,%' OR friend_array LIKE '%,$username,%' OR friend_array LIKE '%,$username' LIMIT 0,8");
但现在我想做相反的事情,让它们随机显示,但我不确定如何。
$not_friend_query = mysqli_query($con,"SELECT * FROM users WHERE username ......???? ORDER BY RAND() LIMIT 0,5");
我对此很陌生,所以请放轻松:) 我只是不确定如何从查询结果中过滤掉那些已经是 userLoggedIn 朋友的成员。
要查找不在当前用户的friend_array
中的所有用户,您需要自加入。 您需要使用LEFT JOIN - NULL
模式来查找不匹配的用户。
使用FIND_IN_SET
将名称与逗号分隔的列表匹配,而不是您复杂的LIKE
模式集。
SELECT u1.username
FROM users AS u1
LEFT JOIN users AS u2 ON FIND_IN_SET(u1.username, u2.friend_array) AND u2.username = '$userLoggedIn'
WHERE u2.username IS NULL
AND u1.username != '$userLoggedIn' -- exclude user themselves
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.