【问题标题】:SQL: Delete all rows exceptSQL:删除所有行,除了
【发布时间】:2025-12-26 07:10:06
【问题描述】:

我想删除以下所有行:

 DELETE FROM `users logins` WHERE `userid` = '$user->id'

但是,如果token = $user->token,我想防止该行被删除

我正在构建一个重置密码功能,一旦密码被解除,我需要从他们所有的设备上注销用户,除了他们正在使用的设备。

这可以通过一条 SQL 语句实现吗?

【问题讨论】:

  • Is this possible with a single SQL statement? 是的。顺便说一句:这应该是一个答案,而不是评论。

标签: sql sql-delete


【解决方案1】:

根据条件添加

DELETE FROM `users logins` 
WHERE `userid` = '$user->id' AND
      `token` <> '$user->token'

【讨论】:

    【解决方案2】:
    DELETE FROM `users logins` 
        WHERE `userid` = '$user->id' AND
              `token` != '$user->token'
    

    【讨论】: