Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL] Wyświetlanie wyrazów z tabeli o pewnych kryteriach bez uzywania LIKE
Forum PHP.pl > Forum > Bazy danych
pitut
Z tabeli 'samochody' musze wyświetlić kolumne 'marka' ale ma wyświetlać tylko te marki (marki sa wyrazami) w których na drugim miejscu znajduje sie litera O lub I a pozostałe sa dowolne.

Z tym że nie mogę do tego użyć LIKE'a
ma to wyglądać tak, i nie wiem jak sie za to zabrać bo LIKE byłby do tego najprostszy..

MARKA MODEL
------------ ------------
FORD K
TOYOTA YARIS
VOLVO 440
FIAT PUNTO
NISSAN MICRA
Wicepsik
  1. REGEXP
pitut
dzięki, czytam o tej funkcji ale nie wiem jak to zapisac. Ucze się sql'a bardzo krotko i dopiero zaczalem poznawac podstawy i mnie zagieli takim zadaniem, mógłbyś mi zapisać taki warunek? na przykladzie mozna wiecej zobaczyc
Wicepsik
  1. SELECT marka REGEXP '^[[:alpha:]]{1}(o|O)' FROM samochody

nie testowane
Quadina
  1. SELECT * FROM `marka` WHERE marka RLIKE '^.(I|O)';


^ oznacza, że liczymy od początku wartości
. oznacza każdy znak dowolny
(I|O) oznacza, ze ma być literka I lub O - czyli znak pionowy to jakby lub - wszystko w nawisach, żeby reqexp wiedział który to drugi znak

Reszta jest dowolna, więc nie musimy już pisać nic przy użyciu ^ na samym początku.
spenalzo
Zaprzęganie do tego regexpa to jakby strzelać do muchy z armaty;)

  1. SELECT marka FROM tabela WHERE substring(marka, 2, 1) IN ('I','O')

Ofc nie testowane.
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.