Skocz do zawartości

Złożone zapytanie SQL


peter_w

Rekomendowane odpowiedzi

Witam wszystkich,

Poszukuję pomocy w następującym problemie. Mam w bazie danych tablicę samochody. Zawiera ona nazwy marek samochodów - kolumna 'marka'.

Proszę o pomoc w napisaniu zapytania SQL które wylistuje wiersze z nazwami marek, które zostały wymienione w zdaniu będącym parametrem wejściowym funkcji().

Będę wdzięczny za naprowadzenie i pomoc

Pozdrawiam Peter_W

Odnośnik do komentarza
Udostępnij na innych stronach

Będę wdzięczny za naprowadzenie i pomoc
Złożone i podałeś jedną tabelę :)

zainteresuj się

- Kursy SQL;

- klauzule WHERE AND OR LIKE;

SELECT * FROM super_auta WHERE 'marka'='BMW';

Proszę...

ps w bazie danych nie ma tablic tylko są TABELE :)

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Będę wdzięczny za naprowadzenie i pomoc
Złożone i podałeś jedną tabelę :)

zainteresuj się

- Kursy SQL;

- klauzule WHERE AND OR LIKE;

SELECT * FROM super_auta WHERE 'marka'='BMW';

Proszę...

ps w bazie danych nie ma tablic tylko są TABELE :)

lepsze rozwiązanie to użycie IN :)

Odnośnik do komentarza
Udostępnij na innych stronach

Będę wdzięczny za naprowadzenie i pomoc
Złożone i podałeś jedną tabelę :)

zainteresuj się

- Kursy SQL;

- klauzule WHERE AND OR LIKE;

SELECT * FROM super_auta WHERE 'marka'='BMW';

Proszę...

ps w bazie danych nie ma tablic tylko są TABELE :)

lepsze rozwiązanie to użycie IN :)

Chyba mnie nie zrozumiałeś.

w tabeli są nazwy aut i jakieś tam ich parametry.

Chcę aby zapytanie powodowało wylistowanie wierszy tabeli.

Wytłumaczę na zapałkach:

Pokaż wiersze tabeli w których zapisano marki samochodów występujące w zdaniu:

"samochody marki BMW i VW są lepsze od VOLVO"

hehe. Mam nadzieję że nie podpadłem nikomu bo to tylko przykład :)

Efektem będzie wypisanie z tabeli:

BMW cena.....

VW cena .....

VOLVO cena ....

Czy teraz jaśniej zapytałem ?

Peter_W.

P.S. Gdybym wiedział to bym sam odpowiadał na pytania innych.

Odnośnik do komentarza
Udostępnij na innych stronach

To teraz ja zapytam się Ciebie -> jak określasz swoją znajomość zagadnień bazodanowych ?

Bo z tego co napisałeś wynika, że nawet nie potrafisz powiedzieć o co ci chodzi! Jakie zapałki! Podaj jakie tabele masz w bazie danych

i jeszcze raz o co ci chodzi. Jeśli ma to być wyszukanie w ciągu znaków jakiegoś podciągu stosujemy :

SELECT * FROM moja_tabela WHERE marki LIKE'%BMW%' OR marki LIKE'%WOLWO%';

Tabela powinna mieć kolumnę marki gdzie były by przechowywane tylko nazwy marki auta...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

To teraz ja zapytam się Ciebie -> jak określasz swoją znajomość zagadnień bazodanowych ?

Bo z tego co napisałeś wynika, że nawet nie potrafisz powiedzieć o co ci chodzi! Jakie zapałki! Podaj jakie tabele masz w bazie danych

i jeszcze raz o co ci chodzi. Jeśli ma to być wyszukanie w ciągu znaków jakiegoś podciągu stosujemy :

SELECT * FROM moja_tabela WHERE marki LIKE'%BMW%' OR marki LIKE'%WOLWO%';

Tabela powinna mieć kolumnę marki gdzie były by przechowywane tylko nazwy marki auta...

jest tak

$tekst="samochody marki BMW i VW są lepsze od VOLVO";

Tabela o nazwie marki zawiera np.: marka, cena

czyli mamy:

BMW 100,000

FIAT 30.000

MERC 50.000

FORD 20.000

VW 23.000

CITR 34.000

VOLVO 12.0000

.

.

.

.

.

ZAdanie polega na wyświetleniu wierszy tabeli 'marki' tych które dla kolumny 'marka' mają markę samochodu wymienioną w zmiennej $tekst.

Peter_W

Odnośnik do komentarza
Udostępnij na innych stronach

@peter_w spod php wyciągnij nazwy marek /* można to zrobić na kilka różnych sposobów */ a następnie wklej je do zapytania :-)

@mod: sorki za 2 posty, scalcie z laski swojej, przydałby się mod do automatycznego scalania postów :-)

Odnośnik do komentarza
Udostępnij na innych stronach

@peter_w spod php wyciągnij nazwy marek /* można to zrobić na kilka różnych sposobów */ a następnie wklej je do zapytania :-)

@mod: sorki za 2 posty, scalcie z laski swojej, przydałby się mod do automatycznego scalania postów :-)

Uff.. No to zrozumieliśmy się w końcu. Wiem ze mogę to zrobić przez wyciągnięcie marek i z tym poradzę sobie.

Sądziłem, że możliwe jest podstawienie zmiennej w której są te marki wymieniane do zapytania SQL.

Dziękuję za pomoc Peter

Odnośnik do komentarza
Udostępnij na innych stronach

A ja bym to zrobil tak:

1. Najpierw ladujesz z Mysql liste marek z DISTINCT'em do tablicy np. maluch, fiat, bmw,wv,polonez

2. porownujesz ta tablice ze zdaniem np. foreach i strpos i zapisujesz wynik np. 'Lubie bmw i poloneza' Zapisze 'bmw,polonez'

3. robisz zapytanie polecane przez bledzio podstawiajac ciag wynikowy (odpowiednio sformatowany)

Katalogi stron kdir i free web directory only english please!!! : system wymiany linków - Czyli zostań moim referralem w link vault

Odnośnik do komentarza
Udostępnij na innych stronach

a może po prostu

$string=strtr( $string, ' ',','); //zamien spacje na przecinek.

select * from samochody where marka in ($string)

PS. oczywiscie nalezaloby zamienic wszystkie biale znaki na przecinki, podwojne skonwertowac do pojedynczych, zmienic litery male na wielkie (lub odwrotnie)

PS2. Przy dlugich zdaniach moze byc troche czasochlonne ale przy krotkich to proste i przejrzyste rozwiazanie jest

Odnośnik do komentarza
Udostępnij na innych stronach

a może po prostu

$string=strtr( $string, ' ',','); //zamien spacje na przecinek.

select * from samochody where marka in ($string)

PS. oczywiscie nalezaloby zamienic wszystkie biale znaki na przecinki, podwojne skonwertowac do pojedynczych, zmienic litery male na wielkie (lub odwrotnie)

PS2. Przy dlugich zdaniach moze byc troche czasochlonne ale przy krotkich to proste i przejrzyste rozwiazanie jest

Genialne ;)

Dziękuję za Pomoc Peter_W

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności