CREATE PROCEDURE update_table(
IN choice INT(4),
IN id VARCHAR(50),
IN string VARCHAR(50)
)
BEGIN
UPDATE salesman
set salesman_name = IF(choice = 1, string, salesman_name)
where salesman_id = id
UPDATE salesman
set date = IF(choice = 2, string, date)
where salesman_id = id
END
если choice
является 1, изменение salesman_name в string
MySQL различные обновления строки в зависимости от переменной (хранимой процедуры)
если choice
является 2, дата изменения в string
вы можете объяснить мне, что я «Неправильно?
он отлично работает с одним update
, я думаю, есть другой способ реализовать, если бы я не мог.
if choice = 1 then
update salesman set salesman_name = string where salesman_id = id
... Я тоже пробовал эту версию, но все же не работал.
DELIMITER //
CREATE PROCEDURE update_table(
IN choice INT(4),
IN id VARCHAR(50),
IN string VARCHAR(50)
)
BEGIN
UPDATE salesman set salesman_name = IF(choice = 1, string, salesman_name) where salesman_id = id;
UPDATE salesman set date = IF(choice = 2, string, date) where salesman_id = id;
END //
DELIMITER ;
У вас возникла ошибка в синтаксисе SQL; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать вблизи «DELIMITER» в строке 1
также говорит, что это:
ОШИБКА: Неизвестная пунктуация строка @ 11 (последняя строка)
Вы используете интерфейс редактора процедур в phpMyAdmin для этого? Что вы выбрали в текстовом поле для разделителя? –