Soubory . Máte dvě možnosti, ne tři:
utf8_bin všechny tyto položky považuje za odlišné :demandé a demandé a Demandé .
utf8_..._ci (obvykle utf8_general_ci nebo utf8_unicode_ci ) považuje všechny tyto položky za stejné :demandé a demandé a Demandé .
Pokud chcete rozlišovat pouze malá a velká písmena (demandé =demandé , ale ani jeden neodpovídá Demandé ), máte smůlu.
Pokud chcete pouze citlivost na přízvuk (demandé =Demandé , ale ani jeden neodpovídá demande ), máte smůlu.
Prohlášení . Nejlepší způsob, jak dělat, co si vyberete:
CREATE TABLE (
name VARCHAR(...) CHARACTER SET utf8 COLLATE utf8_... NOT NULL,
...
PRIMARY KEY(name)
)
Neměňte řazení za chodu . Pokud se řazení liší v name, index se nepoužije (to znamená, že bude pomalý) :
WHERE name = ... COLLATE ...
BINÁRNÍ . datové typy BINARY , VARBINARY a BLOB jsou velmi podobné CHAR , VARCHAR a TEXT pomocí COLLATE ..._bin . Snad jediný rozdíl je v tom, že text bude zkontrolován na platné utf8 uložené v VARCHAR ... COLLATE ..._bin , ale nebude zkontrolován při ukládání do VARBINARY... . Srovnání (WHERE , ORDER BY , atd.) bude stejný; to znamená, že jednoduše porovnejte bity, neprovádějte skládání pouzdra nebo oddělování zvýraznění atd.