witam, mam takie coś :
delimiter $ CREATE FUNCTION Bcheck(id INT) RETURNS INT BEGIN DECLARE done INT DEFAULT 0; DECLARE id_u,id_g,id_b,t INT; DECLARE cur1 CURSOR FOR SELECT IDU,IDG,IDB,TIME_TO_SEC(TIMEDIFF(EndTime,now())) AS tim FROM k_bb WHERE TIME_TO_SEC(TIMEDIFF(EndTime,now())) < 0 AND IDC=id; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; OPEN cur1; REPEAT FETCH cur1 INTO id_u, id_g, id_b, t; IF NOT done THEN [u]IF id_b = 1 THEN [/u] [u]UPDATE k_cb SET `1` = `1` +1 WHERE IDU = id_u AND IDC = id; [/u] [u]END IF; [/u] [u]IF id_b = 2 THEN [/u] [u]UPDATE k_cb SET `2` = `2` +1 WHERE IDU = id_u AND IDC = id; [/u] [u]END IF;[/u] (.......) -- tu jest tak samo jak wyżej tylko że dla innych liczb; DELETE FROM k_bb WHERE IDU = id_u AND IDC = id AND IDB = id_b; END IF; UNTIL done END REPEAT; CLOSE cur1; RETURN t; END; $ delimiter ;
znacie jakieś polecanie na zmianę łańcucha znaków na nazwę tabeli ?
mogę choćby wydobyć nazwę kolumny, choćby w ten sposób, ale to nie daje pożadanego efektu :
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'k_cb' AND column_name LIKE '1';
a może coś co da nazwę np. trzeciej kolumny z danej tabeli ?