sql >> Database >  >> RDS >> Mysql

MySQL-sortering:latin1_swedish_ci versus utf8_general_ci

Wat je ook doet, probeer niet de standaard swedish_ci-sortering met utf8 (in plaats van latin) in mysql te gebruiken, anders krijg je een foutmelding. Collaties moeten worden gecombineerd met de juiste tekenset om te werken. Deze SQL zal mislukken vanwege de mismatch in karakterset en 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

En @Blaisorblade wees erop dat je dit kunt oplossen door de tekenset te gebruiken die bij de Zweedse sortering hoort:

DEFAULT CHARACTER SET = utf8_swedish_ci

De SQL voor de cal (kalender) module voor het Yii php-framework had iets dat lijkt op de bovenstaande foutieve code. Hopelijk hebben ze het inmiddels opgelost.



  1. Overlappende beperking voor datums na gres

  2. MySQL gebruikt geen indexen bij het opvragen van een BIT-veld met behulp van bitsgewijze functies

  3. Welke rechten zijn vereist om een ​​gebruiker in Oracle te maken met een niet-DBA-gebruiker?

  4. Een lijst maken van alle tabellen die in een bepaalde opgeslagen procedure in oracle worden gebruikt?