mysql - 根据条件更新 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 应该被忽略..
各种方法都试过了,有帮助吗?
解决方案
我仍然不确定您的问题是什么,但是从语法上讲,这应该可以。
UPDATE accounts SET coin = coin+500 WHERE hwid = (SELECT hwid FROM block_list LIMIT 1)
推荐阅读
- javascript - React-Loadable 重新渲染导致输入失去焦点
- web-audio-api - 处理 Web Audio API 的麦克风音频样本
- c# - 实例化新实例是否使所有代码线程安全?
- c# - 我如何捕获异常块内引发的异常
- c++ - C ++多态性:如果派生类中的虚函数在基类中声明为常量,是否需要将其声明为常量
- linux - 在一个命令行中将不同的文本附加到多个文件
- .net - 覆盖对话框中的确定和取消按钮
- java - android Gradle 库中的 Firebase 连接错误
- java - 删除字符串arraylist java中的元素
- c# - 概率如何在 C# 中工作