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

Vyhledávání v poli utf8_bin v MYSQL rozlišuje velká a malá písmena

Řetězec v MySQL má sadu znaků a řazení . Utf8 je znaková sada a utf8_bin je jedním z jejích řazení. Chcete-li porovnat svůj řetězcový literál se sloupcem utf8, převeďte jej na utf8 přidáním předpony se zápisem _charset:

_utf8 'Something'

Nyní je řazení platné pouze pro některé znakové sady. Rozlišují se malá a velká písmena řazení pro utf8 se zdá být utf8_bin, které můžete zadat jako:

_utf8 'Something' collate utf8_bin

S těmito převody by měl dotaz fungovat:

select * from page where pageTitle = _utf8 'Something' collate utf8_bin

Předpona _charset pracuje s řetězcovými literály. Chcete-li změnit znakovou sadu pole, je zde CONVERT ... USING. To je užitečné, když chcete převést pole pageTitle na jinou znakovou sadu, jako v:

select * from page 
where convert(pageTitle using latin1) collate latin1_general_cs = 'Something'

Chcete-li zobrazit znak a řazení pro sloupec s názvem „col“ v tabulce s názvem „TAB“, zkuste:

select distinct collation(col), charset(col) from TAB

Seznam všech znakových sad a porovnávání lze nalézt pomocí:

show character set
show collation

A všechny platné řazení pro utf8 lze nalézt pomocí:

show collation where charset = 'utf8'


  1. Tabulka [název_tabulky] není uzamčena

  2. Jak odstranit číslice z konce řetězce pomocí SQL

  3. Jak vytvořit prázdný formulář v Accessu 2016

  4. Jak zacházet s chybou Ruby on Rails:Nainstalujte prosím adaptér postgresql:`gem install activerecord-postgresql-adapter'