Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SELECT a FROM b WHERE substring zawiera się w danym stringu
Forum PHP.pl > Forum > Bazy danych
kreatiff
Witam.
Głowię się nad pewnym zapytaniem do bazy SQLite używając PDO.

Chodzi o to, by z pola koncowka w tabeli koncowki wybrać takie zlepki liter, które są końcówką uprzednio wybranego wyrazu.

I tak dla przykładu:

Dany wyraz: kolor
W tabeli koncowki mamy pole koncowka z takimi rekordami:
olor
lor
or
ar
r
lr
lej
ej
j

Zapytanie ma zwrócić: olor, lor, or, r (czyli końcówki wyrazu kolor).

SELECT koncowka
FROM koncowki
WHERE koncowka [zawiera się w] 'kolor'

Głowię się już kilka dni nad tym przeszukując Internet, ale niestety mój stan wiedzy lub sposób szukania nie wystarcza na rozwiązanie tego problemu.
nospor
  1. SELECT koncowka
  2. FROM koncowki
  3. WHERE 'kolor' LIKE concat('%',koncowka)
kreatiff
Dziękuję za odpowiedź.

Jednak coś robię cały czas źle. Mimo stworzenia sobie dokładnie takiej samej bazy na potrzeby testów z tymi samymi danymi jak w 1 poście cały czas mam:
Call to a member function fetch() on a non-object... .

Nie wiem co jest grane.

Mój cały testowy kod wygląda tak:
  1. $pdo = new PDO('sqlite:.\test.db');
  2.  
  3. $query = $pdo->query("SELECT koncowka FROM koncowki WHERE 'kolor' LIKE concat('%',koncowka)");
  4. $tablica = $query->fetchAll();
  5.  
  6. echo'<pre>';var_dump($tablica);echo'</pre>';
nospor
Masz błąd bazy/zapytania. Wypdałoby więc ten błąd wyświetlić. Jak nie wiesz jak to zajrzyj do manuala do PDO - tam masz napisane jak sie dobrać do błędu
kreatiff
Connection failed: SQLSTATE[HY000]: General error: 1 no such function: concat
A czy coś z tym pójdzie zrobić, albo jakoś to obejść?

dodane:
Idzie obejść. Dla potomnych:
  1. SELECT koncowka
  2. FROM koncowki
  3. WHERE 'kolor' LIKE '%'||koncowka


Bardzo dziękuję za pomoc w rozwiązaniu problemu.
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.