![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Mam taki problem - w jaki sposób ustawić zmienną @costam, żeby przy wywołaniu właściwego zapytania miała wartość 1.000... lub 0.000... (powinna być typu float jeżeli ma to znaczenie), a nie NULL
![]() Jeżeli dam tak: [sql:1:30991c5fec]SELECT @zm:=1 .... [/sql:1:30991c5fec] To coś nie działa :| -------------------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
A bez metafor ? Co znaczy ze nei dziala ?
Kod mysql> select @a;
+------+ | @a | +------+ | NULL | +------+ 1 row in set (0.07 sec) mysql> select @a:=1; +-------+ | @a:=1 | +-------+ | 1 | +-------+ 1 row in set (0.02 sec) mysql> select @a; +------+ | @a | +------+ | 1 | +------+ 1 row in set (0.00 sec) |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Mam takie zapytanie:
i dostaje w wyniku zmienną @stosunek z wartością NULL. Natomiast jeżeli zamiast @stosunek:=1 dam @stosunek:=(IFNULL(@licz,0)/CHAR_LENGTH(ff_posts_text.post_text)) to jest OK... Prawde mówiąc to mnie to troche denerwuje, bo nie moge tego przeskoczyć ![]() Update: sprawdziłęm i samo przypisanie @stosunek:=1 zwraca 1, ale ogólnie coś jest nie tak, ale jeżeli wartość zmiennej jest nadawana z drugiego przykładu to działa dobrze. Nie pomaga także przypisanie @stosunek:=1.0000000 itd -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
wersja mysqla taka jak w stopce ?
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat wersja mysqla taka jak w stopce ?
Tak. -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
A @wyraz1 ustawia sie na jakas wartosc nie nullowa we wszystkich wierszach ?
zreszta mozesz zacytowac przykladowy wynik (najlepiej z shela mysqlowwego) |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Właśnie tak myślałem że w tym problem, ale jak dam [sql:1:82fe9b4fc2]@wyraz1:=0, (lub @wyraz1:=1) @wyraz1:=ABS...[/sql:1:82fe9b4fc2] to i tak nic.
Ale co ciekawe, jeżeli @wyraz1 jest większe od 0 to IF(@wyraz1>0,@stosunek:=@stosunek+(@wyraz1*0.1),0) zwraca NULL. Rozumiem, że 1+NULL=NULL ale przecież @wyraz1 ma przypisaną wcześniej wartość ![]() -> Wynik zapytania -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
Wiesz co, jest to cos bardzo dziwnego. Jak na razie nie udalo mi sie u mnie powtorzyc takiego zachowania. Moglbys podeslac wynik ale wlasnie z shela mysqlowego a nie zadnego toola wwwowego ? (traca sie niektore informacje)
A jeszcze lepiej create table tych trzech i jakis minimalny zestaw insertow zeby mozna dokladnie powtorzyc to zapytanie ? |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Kod topic_id post_time IF(LOCATE('matrix',LOWER(ff_posts_text.post_text))>1, IFNULL(@licz:=@licz+1,@licz:=1),0) @stosunek:=1 @wyraz1:=ABS(LENGTH(ff_posts_text.post_text) - LENGTH(REPLACE(ff_posts_text.post_text,SUBSTRING('matrix',2),'matrix'))) IF(@wyraz1>0,@stosunek:=@stosunek+(@wyraz1*0.1),0) IF(LOCATE('matrix',LOWER(ff_posts_text.post_subject))>0, @stosunek:=@stosunek+0.05,0) IF(LOCATE('matrix',LOWER(ff_topics.topic_title))>0, @stosunek:=@stosunek+0.1,0) @stosunek:=@stosunek*100 stosunek topic_title id
127 1069423910 1 1 1 NULL 0 NULL NULL NULL MatrixII, Equlibrium, Returner czy Hero? 858 36 1068627159 0 1 1 NULL 0 0 NULL NULL Beznadzieja miesi±ca 816 11 1068492942 1 1 1 NULL 0 NULL NULL NULL Matrix II 805 173 1068242336 0 1 0 0 0 NULL NULL NULL Matrix 3 796 173 1068226543 1 1 2 NULL 0 NULL NULL NULL Matrix 3 794 173 1068220579 1 1 1 NULL 0 NULL NULL NULL Matrix 3 793 173 1068155668 1 1 1 NULL 0 NULL NULL NULL Matrix 3 791 173 1068147863 1 1 1 NULL 0 NULL NULL NULL Matrix 3 789 173 1068127317 1 1 6 NULL 0 NULL NULL NULL Matrix 3 788 173 1068122096 0 1 0 0 0 NULL NULL NULL Matrix 3 781 173 1068071315 1 1 8 NULL NULL NULL NULL NULL Matrix 3 779 36 1067795580 1 1 1 NULL 0 0 NULL NULL Beznadzieja miesi±ca 767 36 1067729743 1 1 8 NULL 0 0 NULL NULL Beznadzieja miesi±ca 762 4 1066245553 1 1 1 NULL 0 0 NULL NULL Equlibrium 692 130 1065888449 1 1 1 NULL 0 0 NULL NULL Terminator 3 677 72 1064258101 1 1 1 NULL 0 0 NULL NULL Hugo Weawing 561 127 1064213705 0 1 0 0 0 NULL NULL NULL MatrixII, Equlibrium, Returner czy Hero? 532 130 1064158143 1 1 1 NULL 0 0 NULL NULL Terminator 3 525 127 1064093696 0 1 0 0 0 NULL NULL NULL MatrixII, Equlibrium, Returner czy Hero? 523 127 1064002518 1 1 2 NULL 0 NULL NULL NULL MatrixII, Equlibrium, Returner czy Hero? 519 130 1064000709 1 1 2 NULL 0 0 NULL NULL Terminator 3 518 36 1063920649 1 1 1 NULL NULL 0 NULL NULL Beznadzieja miesi±ca 512 4 1063920466 1 1 1 NULL 0 0 NULL NULL Equlibrium 511 119 1063879254 1 1 1 NULL 0 0 NULL NULL Hero 493 127 1063879124 1 1 2 NULL NULL NULL NULL NULL MatrixII, Equlibrium, Returner czy Hero? 492 19 1063131463 1 1 1 NULL 0 0 NULL NULL Lista Gniotów 441 12 1061055594 1 1 1 NULL 0 0 NULL NULL Lista hitów 333 65 1058042623 1 1 0 0 0 0 NULL NULL Do fanów "Metallici" 222 36 1057240414 1 1 1 NULL 0 0 NULL NULL Beznadzieja miesi±ca 179 11 1055785252 0 1 0 0 0 NULL NULL NULL Matrix II 148 11 1055435364 0 1 0 0 0 NULL NULL NULL Matrix II 144 36 1055156191 1 1 1 NULL 0 0 NULL NULL Beznadzieja miesi±ca 132 11 1055155029 0 1 0 0 0 NULL NULL NULL Matrix II 130 36 1055021653 1 1 1 NULL 0 0 NULL NULL Beznadzieja miesi±ca 112 36 1054986689 1 1 1 NULL 0 0 NULL NULL Beznadzieja miesi±ca 110 11 1054557887 1 1 2 NULL 0 NULL NULL NULL Matrix II 99 11 1053850767 1 1 1 NULL 0 NULL NULL NULL Matrix II 83 11 1053776745 0 1 0 0 0 NULL NULL NULL Matrix II 80 11 1053724564 1 1 1 NULL 0 NULL NULL NULL Matrix II 78 11 1053545096 1 1 4 NULL 0 NULL NULL NULL Matrix II 70 11 1053467458 1 1 7 NULL 0 NULL NULL NULL Matrix II 59 11 1053423018 1 1 5 NULL 0 NULL NULL NULL Matrix II 37 4 1053371247 1 1 1 NULL 0 0 NULL NULL Equlibrium 28 11 1053371075 0 1 0 0 NULL NULL NULL NULL Matrix II 27 11 1053283391 1 1 1 NULL 0 NULL NULL NULL Matrix II 21 12 1053283210 1 1 1 NULL 0 0 NULL NULL Lista hitów 20 11 1053283036 1 1 1 NULL NULL NULL NULL NULL Matrix II 19 11 1053248637 1 1 1 NULL NULL NULL NULL NULL Matrix II 15 4 1053180357 1 1 2 NULL 0 0 NULL NULL Equlibrium 5 To dokładnie zwrócił mysql (usunąłem kolumne z tekstem)... -------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Musze przyznać że to mi podsunęło pewien pomysł na rozwiazanie mojego problemu, ale nie mam teraz możliwości sprawdzenia tego.
-------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
To daj znac, my z adwolem siedziemy i sprobujemy ustalic czy manual klamie czy chlopcy od mysqla zasadzili buga, a ta wiadomosc sie nam przyda przy tym.
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Coś mi tu śmierdzi.....
Dałem sobie na samym początku serii zapytań do bazy coś takiego: [sql:1:c20ec02d86]SELECT @stosunek:=0.0, @wyraz1:=0, @wyraz2:=0 ... @wyrazx:=0 [/sql:1:c20ec02d86] a w trzecim mam @wyraz1:=1, @stosunek:=1.... i po wykonaniu wszystkich obliczęń w głównym zapytaniu @stosunek wynosi ok. 2.0101010101051e+079 ... Żeby nie było nieporozumień (drobne zmiany w II zapytaniu): [sql:1:c20ec02d86]SELECT @stosunek:=0.0, @wyraz1:=0[/sql:1:c20ec02d86] (jak jest @stosunek:=0 to po wykonaniu wszystkich 2 zapytań i tak ma 0, j ak dam @stosunek:=0.0 lub @stosunek:="0" [zgodnie z manualem] to wyuchdzi tak jak niżej) + [sql:1:c20ec02d86]SELECT ff_topics.topic_id, ff_posts.post_time, IF(LOCATE('matrix',LOWER(ff_posts_text.post_text))>1, IFNULL(@licz:=@licz+1,@licz:=1),0), @stosunek:=0.0, @wyraz1:=0, @wyraz1:=ABS(LENGTH(ff_posts_text.post_text) - LENGTH(REPLACE(ff_posts_text.post_text,SUBSTRING('matrix',2),'matrix'))), IF(@wyraz1>0,@stosunek:=@stosunek+(@wyraz1*0.1),0) , @stosunek:=@stosunek*100, @stosunek AS stosunek, ff_topics.topic_title, ff_posts_text.post_id AS id , SUBSTRING(ff_posts_text.post_text,1,200) AS post_content FROM ff_posts_text LEFT JOIN ff_posts ON ( ff_posts.post_id = ff_posts_text.post_id) LEFT JOIN ff_topics ON ( ff_posts.topic_id = ff_topics.topic_id) WHERE ff_posts_text.post_text LIKE '%matrix%' ORDER BY ff_posts.post_time DESC[/sql:1:c20ec02d86] i wszystko jest OK do momentu dojścia do tego fragmentu: [sql:1:c20ec02d86]IF(@wyraz1>0,@stosunek:=@stosunek+(@wyraz1*0.1),0)[/sql:1:c20ec02d86] i wtedy @stosunek przybiera wartość 2.01010101010507e+077 (rozni sie ostatnimi 2 cyframi, np. 077, 074, 075) Teraz to ja już nie wiem o co chodzi :-k -------------------- |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Jedno już wiadomo:
to nie jest bug - musze inaczej napisać to zapytanie... fakt, że lekko nie mam pomysłu jak, ale popracuje nad tym. -------------------- |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Bleh...
Oto do czego doszedłem - wartości zmiennych są do siebie jakby dodawanie SQL Dump spójrzcie na wartość tam gdzie jest "@wyrazBz*0.1)+@stosunek" .... A niby wszystko jest prawidłowo zadeklarowane. Przed tym zapytaniem wykonuje jeszcze jedno [sql:1:8170b415fd]SET @stosunek:=0, @wyrazBz:=1 ...[/sql:1:8170b415fd] bo bez tego wychodzą same NULLe :| Jakieś sugestie? :cry: -------------------- |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Żadnych pomysłów?
Najgorsze jest to, że raz wcześniej mi się udało zrobić, że było OK, ale zgubiłem gdzieś to :cry: :cry: -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 20:54 |