Zrobiłem taką procedurę:
CREATE procedure (09_00 int,10_00 int,11_00 int) begin IF 09_00=0 then UPDATE stat_test SET 09_00=NULL WHERE 09_00=0; end IF; IF 10_00=0 then UPDATE stat_test SET 10_00=NULL WHERE 10_00=0; end IF; IF 11_00=0 then UPDATE stat_test SET 11_00=NULL WHERE 11_00=0; end IF; end
No właśnie i niestety przy wywołaniu tej procedury zmienia mi wszystkie wiersze w danych kolumnach na null, kiedy przy wywołaniu podaje 0, a chodzi o to, żeby zmieniał tylko tam gdzie jest 0 w tabeli. Być może mam gdzieś błąd w rozumowaniu, dlatego proszę o pomoc.
Z góry dziękuję.
Problem już rozwiązany. Oto kod:
CREATE procedure test1(n int) begin IF n=0 then UPDATE stat_test SET 09_00=NULL WHERE 09_00=0; UPDATE stat_test SET 10_00=NULL WHERE 10_00=0; UPDATE stat_test SET 11_00=NULL WHERE 11_00=0; UPDATE stat_test SET 12_00=NULL WHERE 12_00=0; UPDATE stat_test SET 13_00=NULL WHERE 13_00=0; UPDATE stat_test SET 14_00=NULL WHERE 14_00=0; UPDATE stat_test SET 15_00=NULL WHERE 15_00=0; UPDATE stat_test SET 16_00=NULL WHERE 16_00=0; UPDATE stat_test SET 17_00=NULL WHERE 17_00=0; UPDATE stat_test SET 18_00=NULL WHERE 18_00=0; UPDATE stat_test SET 19_00=NULL WHERE 19_00=0; UPDATE stat_test SET 20_00=NULL WHERE 20_00=0; end IF; end