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

MySQL Collation:latin1_swedish_ci Vs utf8_general_ci

Uanset hvad du gør, så prøv ikke at bruge standard swedish_ci-sorteringen med utf8 (i stedet for latin) i mysql, ellers får du en fejl. Kollationer skal parres med det rigtige tegnsæt for at fungere. Denne SQL vil mislykkes på grund af uoverensstemmelsen i tegnsæt og sortering:

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

Og @Blaisorblade påpegede, at måden at løse dette på er at bruge det tegnsæt, der følger med den svenske kollation:

DEFAULT CHARACTER SET = utf8_swedish_ci

SQL'en til cal-modulet (kalender) til Yii php-rammeværket havde noget, der ligner ovenstående fejlkodede kode. Forhåbentlig har de rettet det nu.



  1. Oracle [Procedure] - Sum-funktionen ignorerer WHERE-sætning

  2. Vælg alle kunder undtagen hvis de har et andet produkt - SQL

  3. Hvordan opretter man database i database docker container?

  4. Spring data JPA kun én sammensat nøgle er automatisk inkrementeret problem