![]() |
![]() |
![]()
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... :/ |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ok, dzięki za odpowiedzi!
Cytat Cytat a bym chciał żeby było naturalnie posortowane
Tzn. jak? Liczbowo czy leksykograficznie? Mam liczby z sqla posortowane dokładnie tak: 8.030303030303 6.7543859649123 5.0865051903114 3.030303030303 2.1052631578947 11.379310344828 10.085689802913 1.7241379310345 0.93896713615023 itd, a ja bym chciał od największej do najmniejszej czyli: 11,10,8,6 itd.. Cytat Mozesz sobie skrocic i uczytelnic zapis konstrukca IFNULL(wyr1, wyr2)
Done (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Przy okazji: czy funkcja LOCATE rozróżnia wielkość liter oraz czy jest limit długości zapytania SQL? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.09.2025 - 20:21 |