Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL]zapytanie do mysql
Forum PHP.pl > Forum > Przedszkole
ilkar
Hej

Jak napisać zapytanie co mysql typu:

Select * from 'baza' where kolumna1="wartosc" oraz kolumna2="wartosc2 lub wartosc3 lub wartosc4" oraz kolumna3="wartosc_kolejna lub wartosc_nastepna"

questionmark.gif

z gory dzieki
TomASS
zastąp słowa "oraz" na "AND", oraz słowa "lub" na OR i dodaj odpowiednie nawiasy, czyli np.:

  1. SELECT * FROM 'baza' WHERE kolumna1="wartosc" AND kolumna2="wartosc2 OR (wartosc3 OR (wartosc4" AND (kolumna3="wartosc_kolejna OR wartosc_nastepna")))
thomson89
A do czego ci takie złożone zapytanie?
ilkar
wpisuje cos takiego

SELECT * FROM `posterpillar_employment` WHERE category = "type3" AND country like "%af% OR(%ax% OR(%dz%"))

i niestety nie jest to poprawne...questionmark.gif
SzamanGN
Manual nie boli.
Cytat z manuala:
  1. SELECT val1 FROM tbl1 WHERE val1 IN ('1','2','a');


Twoje rozwiązanie:
  1. SELECT * FROM `baza` WHERE `kolumna1`="wartosc" AND `kolumna2` IN ("wartosc2","wartosc3","wartosc4") AND `kolumna3` IN ("wartosc_kolejna","wartosc_nastepna")
ilkar
hej thomson89

mam do tabeli wczytane rekordy, ktore mozna podzielic na 4 kategorie, czyli np mam tabele pojazdy, w ktorej mam wczytane "auta, motocykle, rowery i ciezarowki" dalej w tej tabeli mam kolumne kraj, wyglada to mniej wiecej tak:

pojazdy kraj
auto Polska
motocykl Włochy
auto Niemcy
auto Włochy, Francja

i chce wyciagnac np wsystkie auta, ktore pochodzą z Włoch lub Polski....
SzamanGN
Pokaż projekt tabeli, to będzie łatwiej zbudować zapytanie.
ilkar
a jezeli chce, zeby z zapytania

Select * from `baza` where `kolumna1`="wartosc" AND `kolumna2` IN ("wartosc2","wartosc3","wartosc4") AND `kolumna3` IN ("wartosc_kolejna","wartosc_nastepna")

wartosc2, wartosc3 i wartosc4 nie byla jednoznaczna, tylko zebym mogl wyszukac czegos bardziej na zasadzie LIKE %% questionmark.gif

to znaczy

Select * from `baza` where `kolumna1`="wartosc" AND `kolumna2` IN LIKE (%wartosc2%,%wartosc3%,%wartosc4%) AND `kolumna3` IN ("wartosc_kolejna","wartosc_nastepna")
thomson89
Cytat(ilkar @ 8.04.2009, 20:54:24 ) *
i chce wyciagnac np wsystkie auta, ktore pochodzą z Włoch lub Polski....


  1. SELECT * FROM pojazdy WHERE kraj='włochy' OR kraj='Polska' AND pojazdy='auta'


Można ewentualnie dać LIKE. Ale nie wiem czy wyjdzie tak jak chcesz. Dodatkowo, przydadzą się tobie operatory, np. http://republika.onet.pl/20405,16583,13,03-04,kursy.html

--EDIT--

Jeszcze jeden: http://phpedia.pl/wiki/Mysql#Operatory
phpion
Cytat(TomASS @ 8.04.2009, 20:21:02 ) *
zastąp słowa "oraz" na "AND", oraz słowa "lub" na OR i dodaj odpowiednie nawiasy, czyli np.:

  1. SELECT * FROM 'baza' WHERE kolumna1="wartosc" AND kolumna2="wartosc2 OR (wartosc3 OR (wartosc4" AND (kolumna3="wartosc_kolejna OR wartosc_nastepna")))

OMG, ale poleciałeś... kto to widział aby w ten sposób łączyć warunki?


Cytat(thomson89 @ 8.04.2009, 21:12:30 ) *
  1. SELECT * FROM pojazdy WHERE kraj='włochy' OR kraj='Polska' AND pojazdy='auta'


Można ewentualnie dać LIKE. Ale nie wiem czy wyjdzie tak jak chcesz. Dodatkowo, przydadzą się tobie operatory, np. http://republika.onet.pl/20405,16583,13,03-04,kursy.html

Z takimi zapytaniami byłbym ostrożny... jeśli nie stosujesz nawiasów mogą wystąpić błędy, którę później ciężko będzie zlokalizować. Lepiej od razu pisać porządnie (i poprawnie):
  1. SELECT * FROM pojazdy WHERE (kraj='włochy' OR kraj='Polska') AND pojazdy='auta'
ilkar
dzieki

o to wlasnie chodzilo smile.gif
thomson89
Na przyszłość od razu pisz o co ci chodzi tongue.gif
TomASS
Cytat
OMG, ale poleciałeś... kto to widział aby w ten sposób łączyć warunki?

Widzę - pominąłem nazwy kolumn.

Winno być:
  1. SELECT * FROM 'baza' WHERE kolumna1="wartosc" AND kolumna2="wartosc2" OR ( kolumna2="wartosc3" OR ( kolumna2="wartosc4" AND (kolumna3="wartosc_kolejna" OR kolumna2=" wartosc_nastepna")))

Wybaczysz?
ilkar
pewnie ze wybacze smile.gif dzieki
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.