By default, MySQL searches are case-insensitive (although there are
some character sets that are never case insensitive, such as czech
).
That means that if you search with col_name LIKE 'a%'
, you will get all
column values that start with A
or a
. If you want to make this
search case-sensitive, use something like INDEX(col_name, "A")=0
to
check a prefix. Or use STRCMP(col_name, "A") = 0
if the column value
must be exactly "A"
.
Simple comparison operations (>=, >, = , < , <=
, sorting and
grouping) are based on each character's ``sort value''. Characters with
the same sort value (like E, e and 'e) are treated as the same character!
LIKE
comparisons are done on the uppercase value of each character
(E == e but E <> 'e)
If you want a column always to be treated in case-sensitive fashion,
declare it as BINARY
. CREATE TABLE
.
If you are using Chinese data in the so-called big5 encoding, you want to
make all character columns BINARY
. This works because the sorting
order of big5 encoding characters is based on the order of ASCII codes.