Mysql
 sql >> Database >  >> RDS >> Mysql

Fascicolazione MySQL:latin1_swedish_ci Vs utf8_general_ci

Qualunque cosa tu faccia, non provare a utilizzare il confronto swedish_ci predefinito con utf8 (invece di latino) in mysql, o riceverai un errore. Le regole di confronto devono essere abbinate al set di caratteri giusto per funzionare. Questo SQL avrà esito negativo a causa della mancata corrispondenza nel set di caratteri e nelle regole di confronto:

CREATE  TABLE IF NOT EXISTS `db`.`events_user_preference` (
  `user_id` INT(10) UNSIGNED NOT NULL ,
  `email` VARCHAR(40) NULL DEFAULT NULL ,
  PRIMARY KEY (`user_id`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = latin1_swedish_ci

E @Blaisorblade ha sottolineato che il modo per risolvere questo problema è usare il set di caratteri che accompagna la raccolta svedese:

DEFAULT CHARACTER SET = utf8_swedish_ci

L'SQL per il modulo cal (calendario) per il framework Yii php aveva qualcosa di simile al codice errato sopra. Spero che ormai l'abbiano risolto.