有没有办法生效的情况下敏感性MySQL/轨道对于一个单一的发现?
-
06-07-2019 - |
题
我在做一些检索标签,和一些用户,如"猫",而其他人,如"猫"去图...
不管怎么说,是否有办法强迫一个特别的发现是情况的敏感?例如:
Tag.find(:some-special-option-here)
任何想法?
解决方案
你也可以做一个情况下,敏感的搜索未经改变你的列属性。
SELECT * FROM mytable WHERE myfield='Value'
这个查询相匹配:
- 值
- 值
- 值
- 值
- 等等
同时...
SELECT * FROM mytable WHERE BINARY myfield='Value'
只匹配:
- 值
其他提示
通过添加“COLLATE utf8_bin”,可以在创建表时使所有字符串区分大小写。创建表时使用:options字符串。例如:
create_table( "page_infos", :force => true, :options => "ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin") do |t|
t.string "title", :limit => 120
end
在数据库、设置你的文字的数据类型来utf_collate_bin.例如:
ALTER TABLE `sets` CHANGE `set_name` `set_name` VARCHAR( 64 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
其中,'集'是表,'set_name'被列类型的VARCHAR(64).你也可以这样做头文件..
任何二进制的整理将做的工作;但utf8是可取的。
如果你想知道什么_ci在结束当前整理是,它意味着"情况不敏感的":p
不隶属于 StackOverflow