簡體   English   中英

更新字段並選擇單個條件為真的多個字段? MySQL的

[英]Updating a field and selecting multiple fields where a single condition is true? MySQL

在單個查詢中,MySQL是否可以更新單個字段並在單個條件為真的情況下選擇多個不同的字段? 我不確定正確的SQL是什么,但我想合並這兩個示例查詢,如果可能的話,當然。

更新查詢:

UPDATE `users` SET `activation`='$activationCode' WHERE `email`='$anEmail'

和一個選擇查詢:

SELECT `password`,`salt`,`fname`,`email` FROM `users` WHERE `email`='$anEmail'

在這里查看重復條件? 當我在一個條件下一次完成所有操作時,肯定沒有必要用重復條件查詢MySQL數據庫兩次嗎?

值得注意的是, $anEmail$activationCode將是以前在PHP中定義的變量(前者在兩個查詢中也完全相同)。 干杯。

您必須編寫存儲過程

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)

如果您只想跳過重復的where子句,請查看此帖(第一個答案)

SQL通過SELECT語句更新多個字段FROM

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM