有没有办法在 MySQL / Rails 中强制区分大小写以进行单个查找?
我正在对标签进行一些搜索,有些用户喜欢“cat”,而另一些用户喜欢“Cat”,想想看……
无论如何,有没有办法强制特定的查找区分大小写? 如:
Tag.find(:some-special-option-here)
有什么想法吗?
I'm doing some searching of tags, and some users like "cat" while others like "Cat" Go figure...
Anyways, is there a way to force a particular find to be case sensitive? Such as:
Tag.find(:some-special-option-here)
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您还可以在不更改列属性的情况下执行区分大小写的搜索。
此查询匹配:
而...
仅匹配:
You can also do a case-sensitive search without changing your column properties.
This query matches:
While...
Matches only:
通过在创建表时将“COLLATE utf8_bin”添加到 :options 字符串,您可以在创建表时使所有字符串区分大小写。 例如:
You can make all strings case sensitive when you create the table by adding "COLLATE utf8_bin" to the :options string when creating the table. For example:
在 mysql 数据库中,将文本的数据类型设置为 utf_collate_bin。 例如:
其中“sets”是表,“set_name”是 VARCHAR(64) 类型的列。 您也可以在 PhpMyAdmin 中执行此操作。
任何二进制整理都可以完成这项工作; 但 utf8 更好。
如果您想知道当前整理末尾的 _ci 是什么,它意味着“不区分大小写”:p
In the mysql database, set your text's data type to utf_collate_bin. For example:
Where 'sets' is the table, 'set_name' is the column of type VARCHAR(64). You can also do this in PhpMyAdmin..
Any binary collate will do the job; but utf8 is preferable.
If you were wondering what the _ci at the end of your current collate is, it means "Case Insensitive" :p