在MySQL中,是否可以在单个查询中更新单个字段并选择多个不同的字段,其中只有一个条件为真?我不太确定正确的SQL应该是什么,但如果可能的话,我当然希望合并这两个示例查询。
示例
update查询:
UPDATE `users` SET `activation`='$activationCode' WHERE `email`='$anEmail'和一个select查询:
SELECT `password`,`salt`,`fname`,`email` FROM `users` WHERE `email`='$anEmail'看到这里的重复条件了吗?当然,没有必要使用重复的条件查询MySQL数据库两次,而我可以在一个条件下一次完成所有这些操作?
值得注意的是,$anEmail和$activationCode是在PHP中预先定义的变量(前者在两个查询中也是完全相同的)。干杯。
发布于 2011-12-26 19:42:36
您必须编写一个stored procedure。
delimiter ;;
CREATE PROCEDURE UpdateAndSelect (mEmail Varchar(50), mactivationCode Varchar(20))
BEGIN
START TRANSACTION;
UPDATE `users` SET `activation`=mactivationCode WHERE `email`=mEmail;
SELECT `password`,`salt`,`fname`,`email` FROM `users` WHERE `email`=mEmail;
COMMIT;
END;;
delimiter ;使用以下命令调用该过程:
CALL UpdateAndSelect(:email, :activation)发布于 2011-12-26 20:13:36
如果你只是想跳过重复的where子句,那么可以看看这篇文章(第一个答案)
https://stackoverflow.com/questions/8635311
复制相似问题