PHPowy substr_count() w MySQL

2007-09-26 07:36:09

 

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

 

Komentarze

 

Dodaj komentarz

 

Dostępne bbcode: b, u, i, color, size, quote, img, url, list, il (tylko w list), code, php, css, html, sql, js