中文应该是有效的阿. text 字段也用 LIKE %中文% 来匹配.    例如搜索 WHERE Name LIKE %王%   我用的是红旗 2.0

解决方案 »

  1.   

    我测试过的,可以。
    但是你要注意一下语法:mysql> select * from bbs where message like '%测试%';
    Empty set (0.00 sec)
    上面是我的数据库的执行结果.我第一次用的时候忘了加'',结果错了。
      

  2.   

    text 类型的字段也可以,我的descripation 的字段类型是text 请看:
    mysql> select * from events where descripation like '%洋%';
    +---------+--------+------------------+--------------------------------+-----+--
    -----+------+
    | eventid | userid | title            | descripation                   | day | m
    onth | year |
    +---------+--------+------------------+--------------------------------+-----+--
    -----+------+
    |      46 |      1 | 烟台的天气不错! | 温度不是太高,湿润的海洋气候。 |  28 |
       6 | 2002 |
    +---------+--------+------------------+--------------------------------+-----+--
    -----+------+
    1 row in set (0.00 sec)
      

  3.   

    这样就不是全文搜索啦.
    全文搜索是指给数据库某些字段加一个fulltext的索引,
    CREATE TABLE articles (
        ->   id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, 
        ->   title VARCHAR(200),
        ->   body TEXT,
        ->   FULLTEXT (title,body)
        -> );
    然后使用的时候就用语法:
    SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('关键字');
    如果用like '%xxx%'的语法效率会比用fulltext低很多哦.我现在使用的一个提高效率方法是建立搜索缓存,加一个数据表储存之前搜索过的东西,不过还是只能用like '%xxx%'来搜索.不爽...
      

  4.   

    中文没有问题啊加上fuultext 的key速度会比较快
      

  5.   

    在建表的时候用到到varchar or char 的字段加上binary
    如:name varchar(20) binary
    或者你在查询时用
    select * from tablename where fieldname Binary =  
    OR 
    select * from tablename where Binary fieldname=