sql >> Databáze >  >> RDS >> Mysql

Existuje řazení utf8_unicode_cs?

Narazil jsem na stejný problém a po nějakém googlování se zdá, že ho MySQL neobsahuje. Chcete-li to "simulovat", jak to říkáte,

1) Chcete-li v DB zajistit rozlišování malých a velkých písmen:nastavte sloupec tabulky na utf8_bin řazení
To umožňuje:

  • přísné SELECTy:SELECT "Joe" NEVRÁTÍ řádky s "joe" / "joE" / "jOe" / atd
  • přísný UNIQUE index:sloupec s UNIQUE indexem bude s rozdíly v malých a velkých písmenech zacházet jako s různými hodnotami. Pokud je například použito řazení utf8_unicode_ci, vložení "Joe" do tabulky, která již "joe" má, vyvolá chybu "Duplicate key". Pokud je použit ut8_bin, vložení "Joe" bude fungovat dobře.

2) Chcete-li získat správné řazení ve výsledcích:přidejte řazení do dotazu SQL:

SELECT ... ORDER BY column COLLATE utf8_unicode_ci


  1. chtěl získat všechna data ve výsledku mysql

  2. Posouvání určitých záznamů na konec běhu se stejným datem

  3. Jak přiřadit čítač na základě podmínky

  4. Rozdíl mezi real_escape_string a Prepare()?