Mam do dopasowania pole w MySQL, dla których myślałem, że mogę użyć wyrażenia regularnego, ale wydaje się, że MySQL nie ma funkcjonalności potrzebnej do wykonania zadania. Oto scenariusz:Czy istnieje odpowiednik MySQL dla PHP preg_replace?
Mam zmienną w PHP o nazwie $ url. Powiedzmy, że ta zmienna jest ustawiona jako ciąg "/ article/my-article/page/2". Mam również tabelę adresów URL w MySQL, z której chciałbym pobrać zawartość. Jednak adresy URL przechowywane w mojej tabeli zawierają znaki wieloznaczne.
Wcześniej miałem tę konfigurację, aby wartość przechowywana w tabeli wyglądała następująco: "/ article /%/page /%".
Z tej konfiguracji, może po prostu uruchomić:
SELECT * FROM urls WHERE '$url' LIKE url
I to będzie pasować, co jest pożądaną funkcjonalność.
Co chciałbym teraz zrobić, to pozwolić na bardziej zaawansowany znak wieloznaczny, taki, że zamiast "/ article /%/page /%", moje dane MySQL mogą być "/ article/{{slug}}/strona/{{page_no}} ".
Chcę utworzyć zapytanie SQL, które będzie pasować do tych danych, używając tego samego wejścia $ url. LIKE nie jest już poprawnym porównaniem, ponieważ nie używam wbudowanego symbolu wieloznacznego "%", ale raczej {{. *}}. Jakieś pomysły, jak to osiągnąć?
To jest poprawna odpowiedź. – dotancohen