如何将这两个查询合并为一个?

时间:2015-08-03 06:34:39

标签: php mysql sql-update

很简单......我如何将这两个查询合并为一个?

$sql = "UPDATE `data` SET `views` = `views` + 1 WHERE `id`=$id AND `source`='$source' AND `keyword`='$keyword'";

$sql = "UPDATE `settings` SET `count` = `count` + 1 WHERE `id`=$id";

修改

此外,还有第一次输入数据的问题,当数据表中尚不存在要更新的数据时。

我的插入查询:

$sql = "INSERT INTO `_data` (`id`, `source`, `keyword`, `views`) VALUES ($id,'$source','$keyword',1)";

是否可以将新数据的插入组合到一个表中,并对另一个表进行更新?

2 个答案:

答案 0 :(得分:2)

我建议你使用准备好的陈述。

$sql = "UPDATE data, settings
        SET data.views = data.views+1, settings.count = settings.count+1,
        WHERE data.id = $id AND data.source = $source AND data.keyword = $keyword AND settings.id = $id";

答案 1 :(得分:0)

Hello JOnathan van Clute,

如果你想在php中合并两个查询,那么你可以在你的代码中尝试这样。

 $sql = "UPDATE `data` SET `views` = `views` + 1 WHERE `id`=".$id." AND `source`='".$source."' AND `keyword`='".$keyword."';";

 $sql .= "UPDATE `settings` SET `count` = `count` + 1 WHERE `id`=".$id.";";

它将合并并在$ sql变量中附加查询。如果您想要一次查询并更新两个记录,那么可以使用一个

如下所示

 $sql ="UPDATE  `data` as dt, `settings` as st SET dt.views = dt.views + 1 , st.count = st.count` + 1 WHERE dt.id=".$data_id." AND dt.source='".$source."' AND dt.keyword='".$keyword."' AND st.id=".$setting_id.";

确保你的$ id变量在这里我使用不同的varibles用于不同的表,如

setting = $ setting_id和data = $ data_id

上面的查询将触发一次,但它将更新两个表和两个记录,因为您可以看到我们在UPDATE查询中添加了两个表,因此两个记录都将更新。

希望它能帮到你

谢谢['}