当前位置: 首页 > 面试题库 >

MySQL-使用SET语句的UPDATE查询取决于前一个SET语句的结果

姜俊民
2023-03-14
问题内容

这是我想通过UPDATE语句实现的表格格式表示。

+----+----+---+---+----+----------+---------------+---------------+
| ID | A  | B | C | D  |  Calc A  |    Calc B     |    Calc C     |
+----+----+---+---+----+----------+---------------+---------------+
|  1 |  6 | 5 | 2 | 10 | =[A]-[B] | =[Calc A]/[D] | =[B]/[Calc B] |
|  2 |  8 | 5 | 2 | 10 | =[A]-[B] | =[Calc A]/[D] | =[B]/[Calc B] |
|  3 | 10 | 5 | 2 | 10 | =[A]-[B] | =[Calc A]/[D] | =[B]/[Calc B] |
+----+----+---+---+----+----------+---------------+---------------+

我当前的UPDATE语句来实现此目标如下…

UPDATE [EXAMPLE]
SET [Calc A]    = A - B
    , [Calc B]  = [Calc A] / D
    , [Calc C]  = B / [Calc B]

但是,它没有按预期工作。[Calc A]将在第一个UPDATE上正确计算。但是,[Calc B]将使用[Calc
A]中的OLD值而不是我刚刚写入html" target="_blank">数据库的NEW更新值来进行计算。这对于[Calc C]仍然适用,它再次引用[Calc B]的OLD值。

如果执行UPDATE语句3次,则数据将正确计算出来。在第一次计算中正确设置了[计算A],然后,在第二次UPDATE中,[计算B]将引用正确的[计算A]更新值,然后,在计算中,[计算C]将参考正确的[计算B]值。第三次更新。

所以我的问题是如何在ONE update语句中将所有列设置为正确的值?


问题答案:

只需独立进行计算即可:

update [EXAMPLE]
set [Calc A] = A - B,
    [Calc B] = (A - B) / D,
    [Calc C] = B / ((A - B) / D)


 类似资料:
  • 我想用命名参数实现一个UPDATE SET语句?可能吗? 对于这样的对象: 这是我的猜测: 对象字段可能会根据发送的请求而有所不同,因此我不想对中的参数进行“硬编码”。

  • 问题内容: 对于MYSQL,我正在使用以下查询: 没关系,但我想向其投放15个以上的广告: 我要如何添加呢? 编辑: 根据猎人的建议: 这很棒!谢谢 问题答案: 这样的事情应该为您工作: 另外,如Simon所建议的,您可以这样做来避免输入两次值: 资料来源:http : //www.karlrixon.co.uk/writing/update-multiple-rows-with-differen

  • 我有2个mysql语句,其中一个从4个链接表中获取所有信息,供员工使用。我正在尝试为另一个表中的每个staff member获取标题,但我无法将其添加到1语句中,因为它与所选的主表无关。我已经尝试了mysql语句的20个变体,但都没有成功。我确实让它通过第二条语句中的一个变量拉出标题并输出它,但它给每个语句都赋予了相同的标题,当它再次循环时似乎并没有更新变量。 第一条mysql语句读到(简化版很长

  • 问题内容: 我正在使用+ + + 。 我有4个DELETE,并且只需要1个数据库请求,因此我将DELETE命令与“;” …相连,但是它总是失败。 它引发此错误: 但是,如果我将此SQL粘贴到PhpMyAdmin中,它将始终成功… 如果我在单个查询中写它也是成功的。 感谢帮助! 问题答案: 我猜您正在使用node-mysql。( 但也应该适用于 node- mysql2 ) 该文件说: 出于安全原因

  • 我正在尝试从本地wordpress安装中提取以下字段 post_title image_url 节选后 选择的其他标准是: null 根据下面的注释,wp_term_taxonomy的表是:term_taxonomy_id term_id taxonomy description parent count 根据下面的注释,wp_posts的表是:ID post_author post_date p

  • 本文向大家介绍mysql update语句的用法详解,包括了mysql update语句的用法详解的使用技巧和注意事项,需要的朋友参考一下 首先,单表的UPDATE语句: UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] [ORDE