繁体   English   中英

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

[英]How can I combine two mysql queries into one?

我想将这两个查询合并为一个:

mysql_query("INSERT INTO categories (name, parent) VALUES ('$name', '$parent')");

mysql_query("UPDATE categories SET child='$child' WHERE ID = $id");

能做到吗

在MySQL中创建触发器。

在不检查父类别是否存在或捕获异常的情况下,以下方法可以解决问题。 用您的数据库替换“ dbname”。

DROP TRIGGER IF EXISTS `dbname`.`update_parent`//
CREATE TRIGGER `dbname`.`categories` AFTER INSERT ON `dbname`.`categories`
FOR EACH ROW BEGIN
UPDATE categories SET child = NEW.ID WHERE ID = NEW.parent;
END
//

当触发器正常运行时,在INSERT之后将自动调用更新,因此您需要执行的所有操作:

mysql_query("INSERT INTO categories (name, parent) VALUES ('$name', '$parent')");

尽管我不知道这是否适合您的问题,但实际上可以通过使用MySQLi扩展将多个查询合并为一个(不适用于mysql扩展)

mysqli_multi_query($connection, "INSERT INTO a (attrib1, attrib2) VALUES ('$a', '$b');UPDATE b SET attrib3='$c' WHERE attrib4 = $d");

暂无
暂无

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

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