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