Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie MySQL(4) ze 'zmiennymi'
Forum PHP.pl > Forum > Bazy danych > MySQL
oscar17
Witam chciałem zastosować kod typu:
  1. SELECT @zmienna := 4;
  2. SELECT * FROM tabela WHERE id = @zmienna;

Jednak działa mi to tylko na MySQL 5, rozumiem że wcześniej nie było możliwości ustawiania zmiennych w MySQL, ale czy jest jakieś alternatywne rozwiązanie tego kodu dla wersji 4.x MySQLa?
Chodzi o to że mam trochę bardziej skomplikowane to zapytanie i @zmienna występuje częściej, a chciałbym tylko raz ją ustawiać, zamiast zmieniać kilka razy w zapytaniu (i chcę to robić bezpośrednio w SQLu, a nie przez PHP - uprzedzając takie odpowiedzi ;-) )
nospor
http://dev.mysql.com/doc/refman/4.1/en/user-variables.html
Cytat
MySQL supports user variables as of version 3.23.6.
oscar17
hmm, fakt...
Zatem dlaczego może to nie działać na zewnętrznym serwerze - jakieś ograniczenia mogą być? Bo nie działa to tylko na jednym, na localhoscie i na innym (też akurat z MySQL5, więc dlatego założyłem że to wina wersji MySQL, ale widzę że jednak nie) działa bez problemu
Nawet jak zrobię tak (czyli poprawniej chyba niż w pierwszym poście, choć działają obie wersje):
  1. SET @zmienna:=4;
  2. SELECT * FROM tabela WHERE id = @zmienna;
nospor
a czym objawia sie to nie dzialanie? Jakis blad?
oscar17
Po prostu zmienna @zmienna jest NULL, także w zapytaniu zwraca zero wyników, po powinna być liczbą, tak jakby w ogóle nie przypisywał do tej zmiennej żadnych wartości, ale błędy żadne nie wyskakują...
nospor
ty to wywolujesz z poziomu mysql czy z poziomu php? Jak z poziomu php to pokaz kod

ps:
nie: SET @zmienna:=4;
a: SET @zmienna=4;

przynajmniej wedlug manuala
oscar17
z MySQL, konkretnie navicatem.
próbowałem na wszystkie sposoby
  1. SET @zmienna:=4;
  2. SET @zmienna=4;
  3. SELECT @zmienna:=4;

Na innych serwerach takie wywołania działają, na tym żadne, to znaczy po każdym @zmienna zwraca NULL...
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.