在mysql如何对中文使用全文搜索?

pcdreama 2002-06-23 08:44:05
在mysql里面,全文搜索对中文是无效的。用varchar字段的可以加上binary属性,但是text字段就没办法了。大家有什么解决的办法吗?
...全文
125 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bombshell 2002-09-10
  • 打赏
  • 举报
回复
在建表的时候用到到varchar or char 的字段加上binary
如:name varchar(20) binary
或者你在查询时用
select * from tablename where fieldname Binary =
OR
select * from tablename where Binary fieldname=
jacquiyan 2002-09-09
  • 打赏
  • 举报
回复
请问怎样按日期前后搜索呢?
q3boy 2002-07-06
  • 打赏
  • 举报
回复
中文没有问题啊。。。加上fuultext 的key速度会比较快
pcdreama 2002-07-03
  • 打赏
  • 举报
回复
这样就不是全文搜索啦.
全文搜索是指给数据库某些字段加一个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%'来搜索.不爽...
HOOLOO 2002-07-01
  • 打赏
  • 举报
回复
中文可以的,你再试试.
bombshell 2002-06-28
  • 打赏
  • 举报
回复
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)
zhumao 2002-06-27
  • 打赏
  • 举报
回复
我测试过的,可以。
但是你要注意一下语法:

mysql> select * from bbs where message like '%测试%';
Empty set (0.00 sec)
上面是我的数据库的执行结果.

我第一次用的时候忘了加'',结果错了。
qwedcxza 2002-06-26
  • 打赏
  • 举报
回复

中文应该是有效的阿. text 字段也用 LIKE %中文% 来匹配.

例如搜索 WHERE Name LIKE %王%

我用的是红旗 2.0

57,063

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧