MySQL capitalize first letter of first word, zvětšení prvního písmene prvního slova v mysql dotazu

Pokud jde jen o prezentaci dat, bude ve většině případů vhodnější použít css styl text-transform:capitalize, který zvětší první písmeno. Ale pokud potřebujete mít defaultně v databázi u několika desítek tisíc záznamů velké první písmeno, mohl by pomoci jednoduchý mysql dotaz.


Neexistuje nic jako příkaz capitalize v mysql, musíme si vypomoci sousledem textových funkcí. Funkce CONCAT spojuje dva řetězce, funkce UPPER vrací řetězec ve velkých písmenech a funkce substring vrací část řetězce.

  1. UPDATE table SET name=CONCAT(UPPER(SUBSTRING(name, 1, 1)), SUBSTRING(name FROM 2))

Další možností je ošetřit to aplikačně, ještě před vstupem do databáze, tam ale problém nastane, pokud máte na vstupu různá kódování. V takovém případě se vám budou hodit funkce multibyte string.

Funkce se jmenují jako běžné textové funkce, ale mají prefix mb_ a obvykle je posledním parametrem vstupní kódování.

Ošetření vstupu by pak vypadalo takto:

  1. <?
  2. $string="nejaký dlouhý název něčeho co má mít první velké písmeno";
  3. echo mb_strtoupper(mb_substr($string, 0, 1, "utf-8"), "utf-8").mb_substr($string, 1, mb_strlen($string), "utf-8");
  4. ?>

Ale pozor na to, že multibyte funkce neumí kódování windows-1250! Proto je vhodnější ošetřit velká písmena až v databázi, kde se o kódování postará databázový systém.