Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MySql - Zapytanie dla wyszukiwania, wiele wartości jedna kolumna, NIE IN !
xammil
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 13.02.2011

Ostrzeżenie: (0%)
-----


Witam, mam problem z zapytaniem w MySql, problem wyglada tak:

Muszę wyszukać w jednej kolumnie różne wartosci np:

...WHERE
`kolumna_1` = 10 AND
`kolumna_1` = 20 AND
`kolumna_1` = 30 AND

kolumna_1 to (INT)

'prawie' idealnie nadaje się IN (10,20,30), z tym ze potrzebuje wyniku gdzie dla kolumny_1 WHERE wlasnie jest takie jak wyzej

zrobilem to zapytanie z LEFT JOIN, z tym ze łączyłem JOIN'em caly czas ta samą tabelę dla kolejnego AND..., to jest raczej mało wydajne (zakladajac że zapytanie może dojść do 30/40 AND na tej samej kolumnie)

Proszę o pomoc, niestety nie mam żadnego pomysłu na to ....

Pozdrawiam Kamil.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bpskiba
post
Post #2





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

Ostrzeżenie: (0%)
-----


Tak na początek:
Razi całkowicie nieprawidłowa budowa bazy. Powinieneś mieć trzy tabele
1 Artykuły (id_artykuły, nazwa itd)
2 Opcje (id_opcje, nazwa itd)
3 artykuły_opcje (id_artykuly_opcje, id_opcje, id_artykuły, nazwa itd)

W Twoim przypadku dodanie opcji skutkuje koniecznością przebudowy zapytań i dodania kolumny w bazie.
Nadal nie jestem pewien czy cię rozumiem. Co to znaczy: opcje z 3 kolumn ('opcje_1','opcje_2','opcje_3') nie maja tylko jednej wartosci
A co powiesz na takie coś:
  1. SELECT *
  2. FROM `artykuly` AS A
  3. LEFT JOIN `artykuly_opcje` AS AP ON (A.`id`=AP.`id_artykulu`)
  4. WHERE
  5. (
  6. AP.`opcje_1`=1 AND
  7. AP.`opcje_1`=2 AND
  8. AP.`opcje_1`=3
  9. ) OR (
  10. AP.`opcje_2`=1 AND
  11. AP.`opcje_2`=2 AND
  12. AP.`opcje_2`=3 AND
  13. ) OR(
  14. AP.`opcje_3`=1 AND
  15. AP.`opcje_3`=2 AND
  16. AP.`opcje_3`=3 )
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 29.12.2025 - 15:19