PHPowy substr_count() w MySQL
Niedawno potrzebowałem zliczyć w MySQL liczbę wystąpień danego znaku w jednym z pól tekstowych. No to biegniem do manuala a tam.... kiszka. Nie ma czegoś takiego
W php to jest substr_count() i po bólu. Trzeba było więc wymyślić własne cudo.
Algorytm ogólnie wydaje się prosty:
- liczymy długość pola
- usuwamy z pola dane znaki (zamieniamy je na "nic")
- liczymy długość pola po usunięciu znaków
- odejmujemy od siebie obie długości i mamy liczbę wystąpień danego znaku
- w przypadku gdy naszym znakiem był ciąg znaków - dzielimy jeszcze otrzymaną różnicę przez liczbę znaków, której szukaliśmy
A oto kod mysql (zakładamy, że szukamy liczby wystąpień średnika ";"):
1
select (length(POLE) - length(replace(POLE,';',''))) ILOSC from tabela
Kategorie mysql


