Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: nazwa kolumny
Forum PHP.pl > Forum > Bazy danych
slepiec
mysql 5.0.24

witam, mam takie coś :
  1. delimiter $
  2. CREATE FUNCTION Bcheck(id INT) RETURNS INT
  3. BEGIN DECLARE done INT DEFAULT 0;
  4. DECLARE id_u,id_g,id_b,t INT;
  5. DECLARE cur1 CURSOR FOR
  6. 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;
  7. DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
  8.  
  9. OPEN cur1;
  10.  
  11. REPEAT
  12. FETCH cur1 INTO id_u, id_g, id_b, t;
  13. IF NOT done THEN
  14. [u]IF id_b = 1 THEN
  15. [/u] [u]UPDATE k_cb SET `1` = `1` +1 WHERE IDU = id_u AND IDC = id;
  16. [/u] [u]END IF;
  17. [/u] [u]IF id_b = 2 THEN
  18. [/u] [u]UPDATE k_cb SET `2` = `2` +1 WHERE IDU = id_u AND IDC = id;
  19. [/u] [u]END IF;[/u]
  20.  
  21. (.......) -- tu jest tak samo jak wyżej tylko że dla innych liczb;
  22.  
  23. DELETE FROM k_bb WHERE IDU = id_u AND IDC = id AND IDB = id_b;
  24. END IF;
  25. UNTIL done END REPEAT;
  26.  
  27. CLOSE cur1;
  28. RETURN t;
  29. END;
  30. $
  31. 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 :
  1. SELECT COLUMN_NAME
  2. 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 ?
kicaj
SHOW TABLE?
osiris
Cytat
a może coś co da nazwę np. trzeciej kolumny z danej tabeli ?


moze tak:
  1. SELECT column_name
  2. FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '$tabela' LIMIT 2, 1;
slepiec
dobra ja rozumiem o co wam chodzi, tylko jak wynik tego co mamy użyć jako nazwy kolumny w UPDATE'cie ?

znalazłem jeszcze takie coś :
  1. PREPARE temp FROM 'UPDATE k_cb SET k_cb.? = k_cb.? +1 WHERE IDU = id_u AND IDC = id';
  2. EXECUTE temp;
  3. DEALLOCATE PREPARE temp;

Tworzy zapytanie na podstawie Varchar'a.
z tym że (ze względów bezpieczeństwa ?) takie coś nie działa wewnątrz procedur czy funkcji.


------edycja :
uznałem że to niewykonalne i przebudowałem bazę.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.