Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MYSQL] Regexp w zapytaniu bazy danych, jaki odpowiednik białego znaku
wree
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 2
Dołączył: 2.08.2008

Ostrzeżenie: (0%)
-----


Witam,

Mam w bazie mysql przykładowo takie coś w tabeli:

Tomasz Matusiak / Monika Matusiak
Tomasz Matusiak Monika Matusiak
Tomasz Matusiak-Drugi / Monika Matusiak-Druga
Tomasz Matusiak-Trzeci Monika Matusiak

Chcę wynik wszystkich tytułów pojedynczych nazwisk

W php byłoby coś takiego: "$dane1[\s/]{1,5}$dane2"

W zapytaniu do bazy nie wiem jaki jest odpowiednik dla białego znaku oraz ilości tych znaków, szukałem kilka godzin i nie znalazłem. Nie mogę użyć LIKE Tomasz Matusiak%Monika Matusiak, bo to łapie podwójne nazwiska. Stanąłem na czymś takim:

SELECT * FROM tabela WHERE klient REGEXP 'Tomasz Matusiak [/]{1,5} Monika Matusiak' ORDER by id DESC LIMIT 1

To mi nie łapie białych znaków w przerwie (bo czasem może być więcej niż 1), \s nie działa. Potrzebuję by wyszukiwał w przerwie tylko po białym znaku i /.
Jak to zrobić?

aktualizacja:

takie coś gdy próbuje powinno działać ale nie wiem dlaczego zwraca zero wyników: 'Tomasz Matusiak[:space:/]{1,5}Monika Matusiak' gdy zrobię odstępy czyli tak: 'Tomasz Matusiak [:space:/]{1,5} Monika Matusiak', to działa. Nie rozumiem dlaczego nie działa.

Działa taka wersja tylko: 'Tomasz Matusiak[ /]{1,5}Monika Matusiak' - mało poprawna wersja.


Ten post edytował wree 24.02.2014, 13:47:29
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 16:53