Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Zmienna w LIMIT
Forum PHP.pl > Forum > Bazy danych > MySQL
TrAvIkK
Siemka

Potrzebuje w zapytaniu SELECT dodać LIMIT, ale tak, by jego wartość była zmienną:

  1. SELECT ... INTO ... FROM .... LIMIT nazwa_zmiennej

Doszedłem do tego, że używa się do tego mniej więcej tego:

  1. SET @LIMIT = 5;
  2. PREPARE stmt FROM ' SELECT ...
  3. FROM ... LIMIT ?;';
  4. EXECUTE stmt USING @LIMIT;


I to działa, tylko gorzej jak chcę by wybierało powiedzmy SUM(nazwaPola), wtedy należy użyć ORDER BY RAND(), ale z niewiadomych powodów jak chcę wyprowadzić wynik SUM() do zmiennej, to wyprowadza 0 aaevil.gif

Czyli to co nie działa wygląda tak:

  1. SET @LIMIT = 5;
  2. PREPARE stmt FROM ' SELECT ... INTO @zmienna FROM ... ORDER BY RAND() LIMIT ?;';
  3. EXECUTE stmt USING @LIMIT;


Zna ktoś rozwiązanie problemu? Chodzi mi poprostu o wybranie SUM(nazwaPola) do zmiennej z danej tabeli o limicie, którym jest jakaś zmienna
prond
Spróbuj tak:
  1. SET @mySum := 0;
  2. SET @myLimit := 5;
  3. PREPARE myStmt FROM 'SELECT @mySum := SUM(`field_no`) as s FROM resources ORDER BY RAND() LIMIT ?';
  4. EXECUTE myStmt USING @myLimit;
  5.  
  6. SELECT @mySum;
TrAvIkK
Cytat(prond @ 28.05.2007, 10:18:56 ) *
Spróbuj tak:
  1. SET @mySum := 0;
  2. SET @myLimit := 5;
  3. PREPARE myStmt FROM 'SELECT @mySum := SUM(`field_no`) as s FROM resources ORDER BY RAND() LIMIT ?';
  4. EXECUTE myStmt USING @myLimit;
  5.  
  6. SELECT @mySum;


Hmm wygląda na to, że działa smile.gif
Dzięki !
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-2024 Invision Power Services, Inc.