MySQL: délka řetězce a nefunkční strlen()

V databázi máme například jména. Chceme získat všechna jména, která jsou kratší než 7 znaků. Jak na to?

Známá funkce strlen() v MySQL neexistuje, zato můžeme použít funkci CHAR_LENGTH().

Příklad s CHAR_LENGTH()

SELECT `jmeno`,`prijmeni`
FROM `uzivatel`
WHERE  CHAR_LENGTH(`jmeno`)<7

CHAR_LENGTH() , LENGTH() a UTF-8

Pokud máme  řetězec s 5 multi-byte znaky, tak funkce CHAR_LENGTH() vrací 5 znaků. Multi-byte znak počítá jako jeden. Kdežto funkce LENGTH() vrátí 10 znaků.



Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>