2015-05-24 2 views
0

Я устал от: хранить в MySQL

delimiter // 
DROP PROCEDURE IF EXISTS tlu30khtd_findkhs // 
create procedure tlu30khtd_findkhs(in kehoachso varchar(15)) 
begin 
    select *from TLU30KeHoachTuyenDung where KeHoachSo = kehoachso; 
end; // 
delimiter;

и когда я вызываю процедуру:

call tlu30khtd_findkhs('KH0001')

, но результат не использовать

where KeHoachSo = kehoachso
его отображения результата
select *from TLU30KeHoachTuyenDung

ответ

0

Проблема заключается в том, что ваше имя параметра совпадает с именем столбца. Это означает, что ваш пункт where не видит параметр, а только имя столбца.

Решение - это префиксные параметры. Я предпочитаю использовать p_ или v_:

delimiter // 
DROP PROCEDURE IF EXISTS tlu30khtd_findkhs // 
create procedure tlu30khtd_findkhs(in p_kehoachso varchar(15)) 
begin 
    select t.* 
    from TLU30KeHoachTuyenDung t 
    where t.KeHoachSo = p_kehoachso; 
end; // 
delimiter; 
+0

это хорошо! Большое спасибо ^^ –

Смежные вопросы