Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Sortierung:latin1_swedish_ci Vs utf8_general_ci

Was auch immer Sie tun, versuchen Sie nicht, die standardmäßige swedish_ci-Sortierung mit utf8 (anstelle von latin) in mysql zu verwenden, oder Sie erhalten eine Fehlermeldung. Sortierungen müssen mit dem richtigen Zeichensatz gepaart werden, damit sie funktionieren. Diese SQL schlägt wegen der Nichtübereinstimmung von Zeichensatz und Sortierung fehl:

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

Und @Blaisorblade wies darauf hin, dass der Weg, dies zu beheben, darin besteht, den Zeichensatz zu verwenden, der zur schwedischen Sortierung gehört:

DEFAULT CHARACTER SET = utf8_swedish_ci

Das SQL für das cal (Kalender)-Modul für das Yii-PHP-Framework hatte etwas Ähnliches wie der obige fehlerhafte Code. Hoffentlich haben sie es inzwischen behoben.