gpt4 book ai didi

mysql更新相关行

转载 作者:行者123 更新时间:2023-11-29 00:12:20 26 4
gpt4 key购买 nike

我有一个包含两个表的 mysql 数据库,usersitems。我想使用 UPDATE 更新 items 中一行的变量(我可以这样做),然后更新 users 中相关行的变量。

我对使用外键更新感到困惑,这可以在一个查询中实现吗?我该怎么做?

编辑

目前我在 php 中这样做:

//execute the SQL query and return records
$result = mysqli_query($dbhandle, "UPDATE items SET likes = likes + 1 WHERE id='$_POST[id]'")
or die("Unable to query");

// update user score
$score = mysqli_query($dbhandle, "UPDATE users u JOIN items i ON u.id = i.user_id SET u.score = u.score + i.likes")
or die("Unable to update user score");

items中的每一行都有一个外键'user_id',我只想根据新更新的item现在有多少喜欢来更新相关用户的分数

最佳答案

您可以在两个表上执行 Join 并执行 UPDATE 就像(下面的示例)

UPDATE users u 
JOIN items i ON u.some_col = i.some_col
SET u.column1 = i.column1

此外,如果您在表之间定义了一个外键关系,那么您可以使用ON UPDATE CASCADE(您必须在创建表时定义或执行ALTER 并更改架构),这将在主表和派生表之间级联更新。

关于mysql更新相关行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24469461/

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