![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%)
|
Witam,
Swój problem już rozwiązałem, ale mam dylemat, czy używać apostrofy w zapytaniach SQL czy nie... Chciałem wykonać takie zapytanie:
I dostawałem błąd: [Err] 1054 - Unknown column 'u.user_id' in 'field list' Wtedy zmieniłem zapytanie na:
I zapytanie wykonało się pomyślnie... Problemem były apostrofy w SELECT, ale dlaczego? Jeśli ktoś mógłby mi to wyjaśnić, byłoby miło. No i inne pytanie, czy jeżeli nie będę używał w ogóle tych lewych apostrofów, to mogę narażać się na jakieś problemy? Czyli zapytania typu:
Wiem, że wiele osób nie używa apostrofów, ja ciągle używałem, bo gdzieś kiedyś wyczytałem/nauczyłem się, że tak wyglądają poprawne zapytania SQL... Pozdrawiam. |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 4 Dołączył: 22.07.2011 Ostrzeżenie: (0%)
|
Cześć.
Jeżeli napisałeś `u.user_id` (z tymi apostrofami) to dlatego pojawił się błąd, bo sql wziął u.user_id jako nazwa kolumny, a nie rozpatrzył że u to nazwa tabeli, a user_id to kolumna. Używanie apostrofów jak najbardziej możesz używać. Jeżeli tworzysz kolumnę w tabeli która będzie zawierać opis czegoś, np opis do artykułu to musisz ją jakoś nazwać. Przykładowo description. Wiadomo też że niektórzy skracają nazwy kolumn jak tylko mogą i zamiast description możesz wpisać desc. Zauważ że nazwa desc to nazwa zaklepana przez sql jako odwrócone sortowanie (od najwcześniejszych dodanych), a więc zapytanie sql np takie: Kod select * from sample_table where desc <> '' zwróci błąd gdyż sql pomyśli że te desc jest nie na tym miejscu.Natomiast jak napiszesz Kod select * from sample_table where `desc` <> '' to wszystko będzie dobrze - wtedy to, sql pomyśli że desc nie jest odwróceniem kolejności wypluwania danych a jest nazwą kolumny.Pozdrawiam. Ten post edytował Calibri 1.08.2011, 15:15:36 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%)
|
To nie apostrofy, tylko gravisy, którymi obejmuje się nazwy m. in. tabel i kolumn. Zatem nie `u.user_id` a `u`.`user_id`.
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%)
|
Obojgu dziękuję za odpowiedź.
@mortus, właśnie ta nazwa wypadła mi z głowy, dlatego użyłem apostrofa (IMG:style_emoticons/default/wink.gif) Dzięki ^^ No i faktycznie po sprawdzeniu kod w postaci `u`.`user_id` działa ^^ Dzięki wielkie (IMG:style_emoticons/default/wink.gif) |
|
|
|
![]() ![]() |
|
Aktualny czas: 30.11.2025 - 05:34 |