gpt4 book ai didi

mysql - 了解更新查询,以及一个查询可以有多少组

转载 作者:行者123 更新时间:2023-11-29 06:29:08 27 4
gpt4 key购买 nike

所以愚蠢的问题,我尝试执行这个非常复杂的 UPDATE 查询。从 UPDATE 语法的设置方式来看;在查询中使用多个 SET 关键字是否可能,是否明智。

这是一个表单,它包含从数据库填充的二维信息数组。数组的每一行相当于数据库中的一条记录。提交时,查询应该更新表值。

<form>
<p>Item 1</p><input name='itemID1'><input name='ItemDescr1'><input name='itemCost1'>
<p>Item 2</p><input name='itemID2'><input name='ItemDescr2'><input name='itemCost2'>
<p>Item 3</p><input name='itemID3'><input name='ItemDescr3'><input name='itemCost3'>
<input type='submit'>
</form>

这是我尝试过的一种新型查询,但我对 SQL 处理此类查询的能力感到有点困惑。但这就是我想象的查询应该如何构造

UPDATE table SET (col1 = "value1", col2= "value2",...) WHERE idcol = "ID1", 
SET (col1 = "value3", col2= "value4",...) WHERE idcol = "ID2"

我真的不知道这是否可行,或者是否应该这样做。如果业内有人遇到过这个问题,请帮忙。

最佳答案

您最好为每个查询编写单独的 UPDATE 查询;使用您设想的语法,您已经只需要一个“更新表”了......但是如果您处于查询数量有限的奇怪情况之一,您可以这样做(除非有情有可原的情况,否则我不会建议这样做,因为它会使查询变得不必要的复杂,而且实际上可能会更慢)。

UPDATE table 
SET col1 = CASE idcol WHEN "ID1" THEN "value1" WHEN "ID2" THEN "value3" ..... ELSE col1 END
, col2 = CASE idcol WHEN "ID1" THEN "value2" WHEN "ID2" THEN "value4" ..... ELSE col2 END
WHERE idCol IN ("ID1", "ID2", ....)
;

ELSE 应该不是必需的,除非您忘记了 WHERE 子句,或者更改了 WHERE 的 IN 列表而不相应地更新所有这些 CASE 表达式;在这种情况下,它将防止查询无意中对一堆数据进行 NULL 处理。

关于mysql - 了解更新查询,以及一个查询可以有多少组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57516797/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com