Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] dokladniejszy wybór SELECT LIKE
Forum PHP.pl > Forum > Przedszkole
elmozaur
Witam.
Chcialbym prosic o porade w nastepujacej kwestii:
Mam baze zawierajaca newsy. Jedno z pol tabeli newsy okresla jakie galerie zdjec maja byc wyswietlana pod newsem. Pole to wyglada np tak: 10;34;60;100. I tu jest moj problem.

Jesli zadaje pytanie:
  1. SELECT * FROM newsy WHERE galeria LIKE '%10%'


to w wyniku dostane zarowno newsy z galeria 10, 100 jak i 1000. A potrzebuje te ktore maja dokladnie 10
Pytanie: czy pytajac baze poprzez LIKE moge jakos dokladniej okreslic czego szukam ?

za info z gory dziekuje
Grzegorz
muniekw
Mi się wydaje, że możesz to zrobić tak:
  1. 1.
  2. SELECT * FROM newsy WHERE galeria AND blelbeble = 10
  3.  
  4. //blebleble TO pole określające TO czego szukasz
exood
Cytat(elmozaur @ 17.02.2010, 12:59:54 ) *
Pole to wyglada np tak: 10;34;60;100. I tu jest moj problem.


jesli byś miał sredniki przed i po (czyli ";10;34;60;100;") to wystarczyłoby zrobić:

  1. SELECT * FROM tabela WHERE pole LIKE '%;10;%';


elmozaur
jest tak:
- jesli news ma 1 galerie to pole wyglada tak '10'
- jesli news ma galerie jako pierwsza to tak '10;1234;13;23'
- jesli jako ostatni to tak '12;234;2354;10'
- a jesli w srodku to tak '123;12;10;25;15'

jak wiec widac sa cztery mozliwosci dopasowania poszukiwanego wyrazu do wzorca.
moze da sie jakos wyrazeniami regularnymi ?
exood
możesz jeszcze zmodyfikować pole wynikach dodac mu średniki z przodu i z tyłu

  1. SELECT CONCAT(';',TABELA.POLE_GALERIA,';') AS mod_POLE_GALERIA WHERE mod_POLE_GALERIA LIKE '%;10;%'


czy coś w ten deseń, z tym, ze nie wiem jakie to szybkie będzie.
z tym, że średniki trzebaby jeszcze escape'nąć coby się zapytanie wykonało;)
phpion
Już dostałeś odpowiedź:
Cytat(exood @ 17.02.2010, 13:20:31 ) *
jesli byś miał sredniki przed i po (czyli ";10;34;60;100;") to wystarczyłoby zrobić:

  1. SELECT * FROM tabela WHERE pole LIKE '%;10;%';

Poza tym: masz złą strukturę tabel. Do takich celów stosuje się osobną tabelę, tzw. "pivot".
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.