![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 2 Dołączył: 22.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam cholernie dziwny problem z pewnym zapytaniem...
Zwraca mi rekord z bazy, problem w tym, że pole user_sid ma wartość, jest nią suma md5. Tak samo z innym zapytaniem...
Też zwraca wynik, ale w polu jest adres email, a nie 0... Gdy jednak wykonuję
Nie ma żadnego rekordu. A pole identyczny typ jak pole user_sid, też zawiera sumę md5. Nigdy się z czymś takim nie spotkałem i nie mam pojęcia co może być nie tak. Pola zostały stworzone tym zapytaniem
Oczywiście wyniki zwracane są prawidłowo, gdy potraktuję 0 jako string, ale dlaczego wyniki są zwracana w innym wypadku. Ten post edytował kartun11 30.09.2010, 11:44:32 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Bo to jest pole tekstowe wiec nalezy je przyrownywac do tekstu a nie liczby....
SELECT * FROM (`ZAT_Users`) WHERE `user_sid` = '0' LIMIT 1 -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
1) Podaj wersję mysql
2) Jeżeli jest to mała tabela daj nam ją w formie zapytania (eksport w phpmyadmin) - tylko ukryj wrażliwe dane -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Oczywiście wyniki zwracane są prawidłowo, gdy potraktuję 0 jako string, ale dlaczego wyniki są zwracana w innym wypadku. Bo nie mozna porownac tekstu do liczby. Mysql wiec rzutuje twoje pole tekstowe na liczbę. A tekst po zrzutowaniu na liczbe to 0 wiec porównujesz 0 z 0 wiec masz true ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 2 Dołączył: 22.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Bo to jest pole tekstowe wiec nalezy je przyrownywac do tekstu a nie liczby.... SELECT * FROM (`ZAT_Users`) WHERE `user_sid` = '0' LIMIT 1 Ale w drugim przypadku gdy operowałem na takim samym typie pola, wartości nie zwróciło mimo przyrównania do liczby 0. Wersja MySQL to 5.0.45. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Ale w drugim przypadku gdy operowałem na takim samym typie pola, wartości nie zwróciło mimo przyrównania do liczby 0. Ale tam miales hasha, a hash pewnie wygladal mniej wiecej tak:12blabla pierwsze znaki to liczby. Konwersja takiego tekstu da ci 12 a 12 to nie jest 0 wiec dalo ci false. ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 2 Dołączył: 22.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ah, więc chodziło o sposób w jaki MySQL przechodzi między typami danych. Nie miałem pojęcia, że jest to realizowane w taki sposób.
Aż wstyd się przyznać, że SQL znam od kilku lat ^^" |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
W identyczny sposób działa to w php
'aa' == 0 //true '12aaa' == 0 //false -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 22:52 |