我有一张MySQL Table表
CREATE TABLE `mytable` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`urlpt` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'Case sensitivity matters.',
PRIMARY KEY (`id`),
UNIQUE KEY `urlpt_UNIQUE` (`urlpt`),
KEY `urlpt_INDEX` (`urlpt`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
我想知道是否必须将列urlpt
设置为二进制,因为我确实使用utf8_bin
排序规则。 (我想处理例如a和á和â等不同的角色......)
答案 0 :(得分:2)
不,你不必。如果数据确实是UTF-8,那么将其存储为UTF-8 VARCHAR就好了。
你使用整理来告诉MySQL应该如何分类/比较事物 - 正如你所做的那样。
你确实遇到过问题吗?
答案 1 :(得分:0)
没有;实际上你应该把它设置为'utf8_general_ci'。
不同之处在于utf8_bin区分大小写,而'A'除了'a'以外的其他内容,这意味着如果你进行查询'... WHERE urlpt LIKE "F%B%"'
那么它只返回'FooBar',而不是'foobar ”。