That is because of the collation. It's the collations that determines
character equality. I can't tell what the collation is in your case for
the columns us, es, de, es and fr. Also, that you match character sets
in different columns is usually not a good idea, unless you have a good
reason for it (and there are exception to this rule).
Try specifying the utf8_bin collation instead and that will work. For a
more complete explanation of all this, read my blog on this subject:
http://karlssonondatabases.blogspot.nl/2012/11/character-sets-collations-utf-8-and-all.html
/Karlsson
Daevid Vincent skrev 2013-09-26 23:44:
How come MySQL is not differentiating between these characters?
SELECT text_id, us, de, es, fr
FROM texts
WHERE us = fr;
Results in matching here. Notice the difference in the "scene" vs "scène"
text_id us es de fr
-------------- ------ ------ --------- --------
all_page_scene scene escena Filmszene scène
I wold expect this NOT to match.
Do I have to add something to my query to tell MySQL to respect other
character sets as different?
CREATE TABLE `texts` (
`text_id` varchar(50) CHARACTER SET latin1 COLLATE latin1_general_ci NOT
NULL DEFAULT '',
`us` text,
`es` text,
`de` text,
`fr` text,
PRIMARY KEY (`text_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
Field Type Collation Null Key Default Extra
Privileges Comment
------- ----------- ----------------- ------ ------ ------- ------
------------------------------- ---------
text_id varchar(50) latin1_general_ci NO PRI
select,insert,update,references
us text utf8_general_ci YES (NULL)
select,insert,update,references
es text utf8_general_ci YES (NULL)
select,insert,update,references
de text utf8_general_ci YES (NULL)
select,insert,update,references
fr text utf8_general_ci YES (NULL)
select,insert,update,references
--
Anders Karlsson, Senior Sales Engineer
SkySQL | t: +46 708-608-121 | Skype: drdatabase
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/mysql