首页 > 解决方案 > 根据条件更新 MySQL 中的字段

问题描述

我有两个表,一个帐户(登录名、密码、硬币、hwid)和一个 block_list(id、hwid)。我想检查accounts.hwid 是否与block_list.hwid 匹配,如果是,则在每个account.hwid + 500 个硬币上设置。

我为此使用上述查询:

UPDATE accounts SET coin=500  WHERE hwid IN (SELECT hwid FROM block_list)

此查询有效,但甚至有 6 个具有相同 hwid 的帐户,我只想在 block_list 中具有 hwid 的一个帐户上设置 +500 个硬币。

我如何将硬币的更新限制为一个与 block_list 中具有相同 hwid 的帐户?

所以,我有 10 个具有相同 hwid 的帐户。我想将 account.hwid 与 block_list.hwid 进行比较,并仅更新 account.sql 中具有相同 hwid 的一个帐户。

示例:在帐户表中存在 10 个名为 admin 和 hwid 102012 的帐户在 block_list 中仅存在一个 hwid 102012

这个查询:

UPDATE accounts SET coin=500  WHERE hwid IN (SELECT hwid FROM block_list)

将从帐户中更新所有 10 个帐户

我只想更新一个帐户,我想在一个帐户上设置硬币 + 500 更多.. 其他 9 应该被忽略..

各种方法都试过了,有帮助吗?

标签: mysqlnavicat

解决方案


我仍然不确定您的问题是什么,但是从语法上讲,这应该可以。

UPDATE accounts SET coin = coin+500  WHERE hwid = (SELECT hwid FROM block_list LIMIT 1)

推荐阅读