2008-11-05 31 views

回答

25

您也可以在不改变你的列属性区分大小写的搜索。

SELECT * FROM mytable WHERE myfield='Value' 

此查询相匹配:

  • 价值
  • VALUE

虽然...只有

SELECT * FROM mytable WHERE BINARY myfield='Value' 

匹配:

  • 价值
2

在mysql数据库中,将文本的数据类型设置为utf_collat​​e_bin。例如:

ALTER TABLE `sets` CHANGE `set_name` `set_name` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL 

其中'sets'是表,'set_name'是类型为VARCHAR(64)的列。您也可以在PhpMyAdmin中执行此操作。

任何二进制整理都可以完成这项工作;但是utf8是优选的。

如果你想知道在当前整理的末端_CI时,它的意思是“不区分大小写”:对

4

您可以在创建表的所有字符串大小写加入 “分页utf8_bin” 到:选项字符串创建表时。例如:

create_table("page_infos", :force => true, :options => "ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin") do |t| 
     t.string "title",  :limit => 120 
end 
+0

迁移看起来如何使已存在的列区分大小写? – Ben 2012-09-09 00:11:48

相关问题