Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]zawarcie warunku MYSQL w nawiasie
Forum PHP.pl > Forum > Przedszkole
piekloniebo
Witam,
Mam takie pytanie co powoduje zawarcie warunku w MYSQL w nawias tak jak w poniższym kodzie bo jak próbowałem bez nawiasu to wyświetla jakieś dziwne wyniki.

  1. $list = "SELECT #__{vm}_orders.order_shipping,
  2. #__{vm}_order_item.order_id,
  3. #__{vm}_order_item.product_id,
  4. #__{vm}_order_item.order_item_id,
  5. #__{vm}_order_item.order_item_name,
  6. #__{vm}_order_item.order_status,
  7. #__{vm}_order_item.product_final_price
  8. ";
  9. $list .= " FROM #__{vm}_order_item, #__{vm}_orders WHERE ";
  10. $q = "";
  11. IF (!empty($keyword)) {
  12. $q .= "(#__{vm}_order_item.order_id LIKE '%$keyword%' "; ->chodzi mi o tą linię dlaczego te warunki są w nawiasie
  13. $q .= "OR #__{vm}_order_item.order_status LIKE '%$keyword%' ";
  14. $q .= "OR #__{vm}_order_item.order_item_name LIKE '%$keyword%' ";
  15. //$q .= "OR CONCAT(`first_name`, ' ', `last_name`) LIKE '%$keyword%' ";
  16. $q .= ") AND "; -> tutaj się nawias kończy
  17. }
  18.  
  19.  



Pozdrawiam,
Darek
vokiel
Nawiasy w sql mają podobne zadanie jak normalnie: grupują działania:
  1. SELECT * FROM test WHERE id=1 AND id_2=4 OR id_3 = 5
Rekordy, gdzie id=1 oraz id_2 =4 lub id_3=5 (czyli wystarczy ze id_3=5 i już jest ok, lub id=1 i id_2=4 niezależnie od id_3)

  1. SELECT * FROM test WHERE id=1 AND (id_2=4 OR id_3 = 5)
Rekordy, gdzie id=1 i albo id_2=4, albo id_3=5 (czyli id musi być 1 i jedno z dwóch id_2=4 lub id_3=5, ale id=1 musi być)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.