Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z zapytaniem do bazy
Forum PHP.pl > Forum > Bazy danych > MySQL
Gregorio
Witam,

Mam problem z wybraniem danych z tabeli

Dane w tabeli zapisane są w ten sposób : Opcja 1|Opcja 2|Opcja 3|

Próbowałem takie zapytanie select * from tabela where wyposazenie in ('Opcja 1|','|Opcja 2|','Opcja 3|');

Jednak nie zwraca mi danych. Jak zrezygnuje z | wykonujac takie zapytanie select * from tabela where wyposazenie in ('Opcja 1','Opcja 2','Opcja 3');
to łapie tylko pierwszą wartość z zapytania.

Pozdrawiam
nospor
znaczy ze w jednym polu tekstowym masz tak zapisane opcje? No to masz totalnie zla strukture.
Opcje maja byc oddzielną tabelą i potem masz je wiazac dodatkową tabela. Struktura

TABELA
ID
....

OPCJE
ID
NAZWA
....

TABELA_OPCJE
ID_TABELA
ID_OPCJA

I wowczas wszystko jest tak jak nalezy i mozna normalnie na tym pracowac.


Jesli zas opcji masz malo to mozesz tez pobawic sie w BITy
http://nospor.pl/opcje-dwuwartosciowe-przechowywanie.html
bpskiba
Zdrowy rozsądek podpowiada, że nie należy brnąć w ślepy zaułek i przerobić strukturę zgodnie z sugestiami nospor'a
Odnośnie samego twojego zapytania:
  1. SELECT * FROM tabela WHERE wyposazenie LIKE ('%Opcja 1%') OR wyposazenie LIKE('%Opcja 2%') OR wyposazenie LIKE('%Opcja 3%');
Gregorio
bpskiba - dzięki zadziałało, mam jeszcze pytanie w tabeli jest wiele wierszy i np wybrało mi wersje o której pisałem "Opcja 1|Opcja 2|Opcja 3|" ale też wiersze gdzie była np tylko sama Opcja 3 lub Opcja 2.
czy mógłbyś mi pomóc z takim zapytaniem ?
nospor
No to zamiast OR masz uzyc AND.... toz to prosta logika jest.
I jesli mozesz to zmien te baze bo daleko na czyms takim nie zajedziesz
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.