我测试过的,可以。 但是你要注意一下语法:mysql> select * from bbs where message like '%测试%'; Empty set (0.00 sec) 上面是我的数据库的执行结果.我第一次用的时候忘了加'',结果错了。
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)
这样就不是全文搜索啦. 全文搜索是指给数据库某些字段加一个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%'来搜索.不爽...
中文没有问题啊加上fuultext 的key速度会比较快
在建表的时候用到到varchar or char 的字段加上binary 如:name varchar(20) binary 或者你在查询时用 select * from tablename where fieldname Binary = OR select * from tablename where Binary fieldname=
但是你要注意一下语法:mysql> select * from bbs where message like '%测试%';
Empty set (0.00 sec)
上面是我的数据库的执行结果.我第一次用的时候忘了加'',结果错了。
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)
全文搜索是指给数据库某些字段加一个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%'来搜索.不爽...
如:name varchar(20) binary
或者你在查询时用
select * from tablename where fieldname Binary =
OR
select * from tablename where Binary fieldname=