SuperTaoer::Thanksgiving

清酒可与解忧;丑妇可与白头;徐行不必驷马;蔽体不必狐裘。

六月 30, 2005

mysql中的字符串区分大小写

类归于: 程序 技术 — SuperTaoer @ 5:45 下午

今天上午同事说要将mysql的字符串区分大小写
于是帮他上网找了下
最后google + 实践
总结出了方法

  1. CREATE DATABASE mytest;
  2. USE mytest;
  3. CREATE TABLE `tcase2` (
  4.     `id` INT(10) UNSIGNED AUTO_INCREMENT,
  5.     `name` VARCHAR(200) NOT NULL DEFAULT 0,
  6.     PRIMARY KEY (`id`)
  7. ) TYPE = MyISAM;
  8.  
  9. INSERT INTO tcase2 (name)  VALUES ('RSS');
  10. INSERT INTO tcase2 (name)  VALUES ('rss');
  11. INSERT INTO tcase2 (name)  VALUES ('rSS');
  12. INSERT INTO tcase2 (name)  VALUES ('Rss');

好了,至此已经插入了4条记录,如果不区分大小写的情况下,这4条记录的name字段是一样的。
下面说明3条sql的执行结果

  1. SELECT id,name FROM tcase1;

显示所有的4条记录

  1. SELECT id,name FROM tcase1 WHERE BINARY name = 'rss';

只是显示全部小写的rss记录

  1. SELECT id,name FROM tcase1 WHERE name = BINARY 'Rss';

只是显示首字母大写其余小写的Rss记录
由此可得在WEHRE子句中的字段部分或者字段的值得部分,这两个地方任意一处加入 BINARY即可完成对大小写敏感的SQL
后来
我又进行了这样的测试
就是把字段类型声明为 BINARY VARCHAR类型
以为 SELECT id,name FROM tcase1 WHERE name = ‘rss’;
能检测出大小写,但是结果不是这样的。。。
也就是说。只有在SQL语句的WHERE子句中加入BINARY才可以完成对大小写敏感的操作。



Leave a Message

No Messages

No Messages

RSS feed for comments on this post. TrackBack URI

Leave a Message





Powered by WordPress