现在有一个表
create table kws(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,keywords varchar(15));
insert into kws('mp3'),('播放器'),('mp4'),('mp3播放器');现在有一个主题 ”最新型mp3正在广大学生中普及“
这里面的关键词是 ”mp3“ 我想通过一个程序把这个主题对应的关键字查询出来
select * from kws where keywords like '%最新型mp3正在广大学生中普及%'
可是这样根本就查不出来,有好的办法吗,可以查出来
谢谢了 

解决方案 »

  1. mysql> select * from kws;
    +----+-----------+
    | id | keywords  |
    +----+-----------+
    |  1 | mp3       |
    |  2 | 播放器    |
    |  3 | mp4       |
    |  4 | mp3播放器 |
    +----+-----------+
    4 rows in set (0.00 sec)mysql> select * from kws where instr('最新型mp3正在广大学生中普及',keywords);
    +----+----------+
    | id | keywords |
    +----+----------+
    |  1 | mp3      |
    +----+----------+
    1 row in set (0.00 sec)mysql>
      

  2. 好像不支持中文
    select * from kws where instr('最新型播放器正在广大学生中普及',keywords);就没有办法查出来了
      

  3. 这应该跟MySQL的字符集设置有关系,比如说你的表是latin1字符集,而用来查询的工具是utf8字符集,那么instr或者like是不会返回正确结果的。
      

类似问题 »