sql >> Database >  >> RDS >> Mysql

MYSQL hoofdlettergevoelig zoeken naar utf8_bin veld

Een string in MySQL heeft een tekenset en een sortering . Utf8 is de tekenset en utf8_bin is een van de verzamelingen. Om uw letterlijke tekenreeks te vergelijken met een utf8-kolom, converteert u deze naar utf8 door er de _charset-notatie voor te plaatsen:

_utf8 'Something'

Nu is een sortering alleen geldig voor sommige tekensets. De hoofdlettergevoelige sortering voor utf8 lijkt utf8_bin te zijn, wat u als volgt kunt specificeren:

_utf8 'Something' collate utf8_bin

Met deze conversies zou de zoekopdracht moeten werken:

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

Het voorvoegsel _charset werkt met letterlijke tekenreeksen. Om de tekenset van een veld te wijzigen, is er CONVERT ... USING. Dit is handig als u het veld pageTitle naar een andere tekenset wilt converteren, zoals in:

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

Om het teken en de sortering te zien voor een kolom met de naam 'col' in een tabel met de naam 'TAB', probeert u:

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

Een lijst van alle tekensets en sorteringen is te vinden met:

show character set
show collation

En alle geldige sorteringen voor utf8 zijn te vinden met:

show collation where charset = 'utf8'


  1. Status en systeemvariabelen bekijken in MySQL Workbench met behulp van de GUI

  2. Hoe tabel-gewaardeerde parameters doorgeven van java naar sql server opgeslagen procedure?

  3. Limiet voor bestandsgrootte importeren in PHPMyAdmin

  4. Oracle - Kloontabel - Structuur, gegevensbeperkingen en alles