如何区分具有相似字母的2个ID

时间:2012-03-08 06:46:42

标签: mysql

INSERT INTO `tablecity` (`City`, `Country`) VALUES ('Itajaí','Brazil');
INSERT INTO `tablecity` (`City`, `Country`) VALUES ('itajai','Brazil');

是的,我知道2必须是同一个城市。让我们暂时假装那些是两个完全不同的城市。

为什么我会收到重复的条目?字母不同。如何使mysql以不同的方式处理2个条目?

1 个答案:

答案 0 :(得分:3)

您几乎肯定会使用不支持您尝试在此处插入的字母差异的字符集和/或整理。

这样的东西不起作用,会导致你遇到的问题:

CREATE TABLE `yourtable` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `city` varchar(28),
  `country` varchar(28),
  PRIMARY KEY (`id`),
  UNIQUE KEY `city` (`city`)
) ENGINE=InnoDB DEFAULT CHARSET=latin;

使用utf8 / utf8_bin不会出错,如下表语法所示:

CREATE TABLE `yourtable` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `city` varchar(28),
  `country` varchar(28),
  PRIMARY KEY (`id`),
  UNIQUE KEY `city` (`city`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

(基于最佳猜测的表格布局)