繁体   English   中英

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

[英]How to merge these two queries into one?

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

$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)";

是否可以将新数据的插入合并到一个表,而将更新合并到另一个表?

我建议您使用准备好的语句。

$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";

你好乔纳森·范·克卢特,

如果要在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变量在这里,我对不同的表使用了不同的变量,例如

设置= $ setting_id和数据= $ data_id

上面的查询将触发一次,但是它将更新两个表和两个记录,如您所见,我们在UPDATE查询中添加了两个表,因此两个记录都将被更新。

希望对您有帮助

谢谢 ['}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM