TEXT / BLOB 文本和大对象如果字符串的长度超过了255,或者要将一篇文章保存到数据库中,CHAR和VARCHAR就无法使用了,这里就要用到TEXT和BLOB类型,该类型可以保存的字符串长度在255 - 65535字节内。BLOB是一个能保存二进制数据的的大对象。BLOB和TEXT数据类型是一样的,唯一的区别就是TEXT不区分大小写,而BLOB区分大小写。

解决方案 »

  1.   

    platinum(白金):
    我的这个字段是用来表示人的名字的,我想有255个长度可能就差不多了吧?
     anziqi(美洲狮):
    再加一个like,什么意思啊,能不能说清楚一点啊?
      

  2.   

    比如表中有Alice这个名字,我输入alice就查不到,当然,我没有办法使别人注册的时候一定统一成大写或者小写,在查询的时候也无法预期别人是否总是输入大写或小写,我该怎么办呢,能够兼顾大小写、中文?
    这是什么意思?
    '表中有Alice这个名字,我输入alice就查不到'你想搜索到对不对,为什么你还定义成BINARY
    '我没有办法使别人注册的时候一定统一成大写或者小写',他注册什么你用什么验正就是了,晕~~~~
    中文没有做过你看看
    http://expert.csdn.net/Expert/topic/1309/1309751.xml?temp=3.840274E-02
      

  3.   

    select * from zhiyuan where name like '%$name%' or name like '%$name%'
      

  4.   

    用BINARY干嘛
    binaray大小写敏感的用varchar或text表示人名用varchar(20)就够了
      

  5.   

    phpteam(好无聊) ;  简便的办法就是存入数据库的时候转换成小写或者大写。
    非常非常不合適, 資料庫應該保存正確的數據.這個問題應該從數據庫設計的角度來解決, 文本欄位就應該使用 text , varchar 類型.
      

  6.   

    不同意 再加一个like的方法!
    因为要是abcde这个串有多少种形式啊?在加一个like能行吗?加多了like有影响效率。
    也不同意 存储时就转化,这样会磨灭个性,而且再读取时无法恢复原貌。还会形成误解。举个例子例如我在这里用ILovePHP的名字注册,可是下次来的时候,我的用户名变成
    ilovephp,我看着会很不爽。还有一些特定的地方也许对大小写要求比较严格。
    你可以在查找时、注册时吧abcde ABCDE Abcde....等同成一个词,但是绝对不应该把它们化为你自己规定的形式进行储存(个别地方还是可以的,但是论坛、社区之类的程序里绝对不应该)所以,我还是建议在select语句里用转换大小写的函数。
    select * from test where 函数(name) like 函数("abcde");
    具体函数我不知道(我才学php,以前一直学jsp的,不好意思啊,说了这么一大堆,原来是个门外汉,不好意思啊!heihei)
      

  7.   

    SUPPORT:简便的办法就是存入数据库的时候转换成小写或者大写。
      

  8.   

    是这样的吧:
    "select * from zhiyuan where LCASE(name) like '%".strtolower($name)."%'"其实万不得已下不怎么推荐用Like+通配符,数据量大时会导致查询速度极慢,不过我也不知道用什么方法代替Like会好点,望高手指点,^_^
      

  9.   

    获取表单数据时转换大小写
    String strtemp = request.getParameter("modeno").toLowerCase()查询时用下列语句
    select * from zhiyuan where lower(modeno) like '%strtemp %' 
      

  10.   

    String strtemp = request.getParameter("modeno").toLowerCase()
    写成了JSP语句,改成PHP就可