![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 1 Dołączył: 16.12.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Posiadam taką tablę:
I taką procedurę:
Kiedy wykonam zapytanie:
Otrzymuję wynik, gdyż taki rekord jest w bazie danych. Kiedy zmieniłbym `type` na np. 'c', to nie otrzymałbym wyniku. Na tej podstawie sprawdzam w procedurze, czy otrzymałem jakiś wynik (czy znaleziono taki rekord). Kiedy wykonuję procedurę:
Otrzymuję wynik "jest", co nie jest zgodne ze skryptem. Czy ktoś mnie oświeci, gdzie znajduje się błąd? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Zmień nazwy parametrów. Być może jest tak dlateggo, że w zapytaniu
SELECT `id` FROM `test` WHERE (`user` = userid) AND (`type` = type) to type bez ` i tak jest traktowane jak nazwa kolumny, a nie parametr, czyli sprawdza, czy wartość w kolumnie jest równa samej sobie... (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 94 Pomógł: 1 Dołączył: 16.12.2012 Ostrzeżenie: (0%) ![]() ![]() |
Problem rozwiązany częściowo.. Okazało się, że nie mogę w procedurze używać SELECT szukając w nich kolumn o wartościach ENUM.
Dlaczego tak się dzieje? Przy normalnym zapytaniu otrzymuję wynik bądź nie - w zależności czy rekord o podanych właściwościach istnieje. W procedurze jednak to już nie działa, gdyż jak się okazuję porównanie kolumny ENUM do jakiejkolwiek wartości skutkuje zwróceniem prawdy. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.09.2025 - 13:19 |