gpt4 book ai didi

mysql - 如何自动更新多行并选择它们?

转载 作者:行者123 更新时间:2023-11-30 23:45:07 25 4
gpt4 key购买 nike

我想更新多行:

UPDATE tbl SET x = x + 5 WHERE x < 7;

然后,我想选择相同的行作为结果集:

SELECT * FROM tbl WHERE (row fulfilled previous condition);

我该怎么做?

最佳答案

这个答案适用于 mySQL,但它也应该足够通用以适用于其他 DBMS。它避免了额外的行、限制或丑陋的黑客攻击,易于扩展,并且不会在不需要时损失性能。

START TRANSACTION;
DROP TEMPORARY TABLE IF EXISTS temp;
CREATE TEMPORARY TABLE temp AS (
SELECT * FROM tbl WHERE x < 7
);
UPDATE temp SET x = x + 5;
REPLACE INTO tbl SELECT * FROM temp;
SELECT * FROM temp;
COMMIT;

如果您在 PHP/PDO 中使用它,您可能需要先选择正确的结果集。错误 HY000 就是一个指示。

$stmt = db -> prepare ($sql);
$stmt->execute ();
for ($i=0; $i<5; $i++)
$stmt->nextRowset ();
$result = $stmt->fetchAll ();

关于mysql - 如何自动更新多行并选择它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42308005/

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