现有如下一存储过程:
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_Test`(in $W_id int)
BEGINDECLARE $type int DEFAULT 0;
DECLARE $preID int;
DECLARE $nextID int;
DECLARE $preName varchar(50);
DECLARE $nextName varchar(50);SELECT `W_Type` INTO $type FROM `tb_Writings`WHERE `W_ID`=$W_id;SELECT `W_ID`,`W_Name` INTO $nextID,$nextName FROM `tb_Writings`WHERE `W_ID`>$W_id AND `W_Type`=$typeORDER BY `W_ID` ASC LIMIT 1;SELECT `W_ID`,`W_Name` INTO $preID,$prename FROM `tb_Writings`WHERE `W_ID`<$W_id AND `W_Type`=$typeORDER BY `W_ID` DESC LIMIT 1;
SELECT $preID AS `PreID`,$nextID AS `NextID`,$preName AS `PreName`,$nextName AS `NextName`;END
现在要求改在PHP里直接运行而不调用存储过程,如果实现?可以不给出代码,但也要把思路说明白。
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_Test`(in $W_id int)
BEGINDECLARE $type int DEFAULT 0;
DECLARE $preID int;
DECLARE $nextID int;
DECLARE $preName varchar(50);
DECLARE $nextName varchar(50);SELECT `W_Type` INTO $type FROM `tb_Writings`WHERE `W_ID`=$W_id;SELECT `W_ID`,`W_Name` INTO $nextID,$nextName FROM `tb_Writings`WHERE `W_ID`>$W_id AND `W_Type`=$typeORDER BY `W_ID` ASC LIMIT 1;SELECT `W_ID`,`W_Name` INTO $preID,$prename FROM `tb_Writings`WHERE `W_ID`<$W_id AND `W_Type`=$typeORDER BY `W_ID` DESC LIMIT 1;
SELECT $preID AS `PreID`,$nextID AS `NextID`,$preName AS `PreName`,$nextName AS `NextName`;END
现在要求改在PHP里直接运行而不调用存储过程,如果实现?可以不给出代码,但也要把思路说明白。
存储过程 用多少次查询, PHP 就用多少次查询
分别只在于执行的地方
你那个存储过程一样进行了4次如果想一句SQL 完成可以用 subquery 之类的