我要做的是删除lobby表中没有useronline表中的id的行。这样我就能消除那些不“在线”的人。 (实际的脚本不是关于谁不在线但是它的逻辑相同)有没有办法我可以先从useronline
中选择ID,然后在lobby
中搜索那些不是那些的我刚刚选择了,并用while循环删除它们?
这是我的非工作脚本,向您展示到目前为止我的想法:
$sql = mysql_query("SELECT DISTINCT `id` FROM `useronline` WHERE 1");
while($row = mysql_fetch_array( $sql )) {
mysql_query("DELETE *
FROM `lobby`
WHERE `tableid` NOT IN ('$row') <-- Can't figure out how to make this part
LIMIT 0 , 30");
}
答案 0 :(得分:3)
您可以使用一个查询执行此操作。
DELETE FROM `lobby`
WHERE `tableid` NOT IN (SELECT DISTINCT `id` FROM `useronline`)
答案 1 :(得分:1)
为了使代码保持原样,您希望将$ row更改为$ row [“id”],如下所示:
WHERE `tableid` NOT IN ('" . $row["id"] . "')