我正在尝试创建一个应用程序,通过从数据库中随机选择两个可用用户,然后使他们不可用(因此无法再次选择他们)来配对两个可用用户。
我想知道如何选择它们然后将它们配对?
我有以下数据库结构。
USERS
| id | autoincrement, primary key
| user_id | user's ID
| connected | available, connecting, chatting
ROOMS
| id |
| room_name |
| room_id |
| user_id | first user connected
| user_id2 | second user connected
我不是在创建房间,我只是尝试将用户配对并将他们发送到一个房间。
最佳答案
你的意思是加入记录吗?
你可以这样做:
select * from rooms as r
left outer join users as u on r.user_id=u.id
left outer join users as u2 on r.user_id2=u2.id
where r.id=123
123 = 房间 ID。
编辑:
这是一种用两个随机用户更新房间记录的方法
UPDATE rooms
SET
user_id=(SELECT id FROM users ORDER BY RAND() LIMIT 0,1),
user_id2=(SELECT id FROM users ORDER BY RAND() LIMIT 0,1),
where id=123
我已经测试过了,它似乎有效。这将使您避免出现重复的用户:
UPDATE rooms
SET
user_id=(SELECT u1.id FROM users as u1 ORDER BY RAND() LIMIT 0,1),
user_id2=(SELECT u2.id FROM users as u2 where user_id <> u2.id ORDER BY RAND() LIMIT 0,1)
where id=123
关于php - 使用 PHP 选择并配对两个用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12720914/