2006-11-14 bailing
---------------------

在 BLOB 和 TEXT 类型之间的唯一差别就是,对 BLOB 值是以字母大小写敏感的方式进行排序和比较的,
而对 TEXT 值以忽略字母大小写方式进行排序和比较。换句话说,TEXT 是一个忽略字母大小写的 BLOB。 

---
用upper或lower函数
---
CHAR 和 VARCHAR 列值以省略字母大小写的方式进行排序和比较,除非在表建立时 BINARY 属性被指定。BINARY 属性意味着,
该列值根据 MySQL 服务器正在运行的机器的 ASCII 表顺序进行字母大小写敏感的方式排序和比较。BINARY 并不影响该列如何被存储和检索。


所以查询ascii字符匹配的时候只好
"upper(字段) like'%".strtoupper(var)."%'"

注意不能对中文这么用,中文会被分解成

-----
列名与列的别名在所有的情况下均是忽略大小写的。表的别名是区分大小写的。

如果记忆数据库和表名的字母大小写有困难,建议采用一个一致一约定,例如总是以小写字母创建数据库和表。 

避免这个问题的另一个办法就是以 -O lower_case_table_names=1 参数启动 mysqld。缺省地在 Windows 中这个选项为 1 ,在 Unix 中为 0。
Posted on 2006-11-17 11:21  古代  阅读(749)  评论(0编辑  收藏  举报