Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: LIKE
Forum PHP.pl > Forum > Bazy danych
Athlan
Witam.

Od paru godzin dręczy mnie pewien problem. Chciałbym za pomocą LIKE pobrać całe wyrazy. Co to oznacza.

Mamy słowo "rowerownia" w pewnym polu w pewnej bazie danych. Wpisując słowo "rower" lub "rowerow" nie chcę aby znalazł ten rekord. Czyli LIKE '%rower%' odpada.

Rozwiązanie '% rower %' odpada.

Jakieś pomysły smile.gif

Dzięki za odpowiedzi smile.gif
NuLL
REGEX smile.gif Poszukaj w manualu tylko nie wiem czego winksmiley.jpg
Athlan
@NuLL, dzięki smile.gif W manualu wszystko ładnie opisane:
http://dev.mysql.com/doc/refman/5.1/en/regexp.html

[[:<:]], [[snitch.gif:]]

These markers stand for word boundaries. They match the beginning and end of words, respectively. A word is a sequence of word characters that is not preceded by or followed by word characters. A word character is an alphanumeric character in the alnum class or an underscore (_).
Kod
mysql> SELECT 'a word a' REGEXP '[[:<:]]word[[:>:]]';   -> 1
mysql> SELECT 'a xword a' REGEXP '[[:<:]]word[[:>:]]';  -> 0


Na podstawie tego stworzyłem
  1. SELECT * FROM test WHERE t REGEXP '[[:<:]]rower[[snitch.gif:]]'


Działa wyśmienicie.
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.