Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z IFem i zmiennymi oraz 2 pytania
spenalzo
post
Post #1





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Mam takie zapytanko (fragment):
[sql:1:9c6dbbb2b0]SELECT ...
IF(LOCATE('jakis',LOWER(post_text))>1, @licz:=@licz+1,0),
IF(LOCATE('inny',LOWER(post_text))>1, @licz:=@licz+1,0),
@stosunek:=(@licz/LENGTH(post_text)) ...[/sql:1:9c6dbbb2b0]
i to nie działa, ponieważ czasami którykolwiek z tych IFów zwróca NULL :? co mnie dziwi troche..
Pokombinowałem troche i wymyśliłem sobie tak:
[sql:1:9c6dbbb2b0]SELECT ...
IF(LOCATE('jakis',LOWER(post_text))>1, IF(ISNULL(@licz)=1,@licz:=1,@licz:=@licz+1),0),
IF(LOCATE('inny',LOWER(post_text))>1, IF(ISNULL(@licz)=1,@licz:=1,@licz:=@licz+1),0),
@stosunek:=(IF(ISNULL(@licz),0,@licz)/LENGTH(post_text)) ...[/sql:1:9c6dbbb2b0]

Czy to jest poprawne??

Dodatkowe pytania - czy sortowanie po zmiennej jest poprawne?
oraz czy jest coś co pozwala sortować naturalnie - bo teraz wiersze sie ukłądają mniej wiecej tak (przy ORDER BY @stosunek):
3.xx
2.xx
10.xx
0.xx
itd - a bym chciał żeby było naturalnie posortowane... :/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adwol
post
Post #2





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

Ostrzeżenie: (0%)
-----


Przecież pisałem Ci, że zmienne nie będą tu działać.
Cytat
Note: in a SELECT statement, each expression is evaluated only when it's sent to the client. This means that in the HAVING, GROUP BY, or ORDER BY clause, you can't refer to an expression that involves variables that are set in the SELECT part
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 09:23