ورود

View Full Version : مشکل با اجرای کوئری آپدیت



sh.shad
جمعه 05 آذر 1395, 21:55 عصر
با سلام

من کوئری زیر را نوشتم

SELECT * FROM `mdl_user` WHERE `username`='ghom'

UPDATE `mdl_user`
SET `m_PersonnelId`=PersonnelId
WHERE `username`='ghom'

هنگام اجرا داخل کوئری یک رکورد جدول یوزر را آپدیت می کند ولی زمانیکه داخل پروسیجر قرار میدهم و آن را فراخوانی میکنم ،
کل رکوردهای جدول یوزر را آپدیت می کند و شرط آن درنظر گرفته نمی شود؟ :ناراحت:
اینم پروسیچرم:

DELIMITER $$USE `moodle_3`$$DROP PROCEDURE IF EXISTS `User_Update`$$CREATE DEFINER=`root`@`localhost` PROCEDURE `User_Update`(
/*in LoginUserIdbigint(10),*/
IN PersonnelId BIGINT(10),
IN username VARCHAR(100)
)
BEGINUPDATE `mdl_user`
SET `m_PersonnelId`=PersonnelId WHERE `mdl_user`.`username` = username;
END$$DELIMITER ;
نحوه فراخوانی:

CALL `User_Update` (888,'ghom');

من mysql زیاد بلد نیستم ، لطفا یکی منو راهنمایی کنه ؟ مشکل از کجاست؟

باتشکر

Mahmood_M
دوشنبه 29 آذر 1395, 18:37 عصر
چون پارامتر username که ورودی SP هست دقیقا همنام فیلد username هستش، در دستور Update درون SP ، مقدار username همون نام فیلد درنظر گرفته میشه، نه پارامتر و به خاطر همین شرط برای همه فیلدها برقراره و همشون تغییر می کنن، نام پارامتر ورودی username رو تغییر بدید درست میشه