如何从MySQL中提取相关数据?

时间:2010-08-17 19:46:57

标签: mysql

我正在使用一个名为“url2”的表与MySQL InnoDB引擎。我有很多数据,包含页面的完整HTML,页面的URL等等....当我使用以下SQL查询时,我得到了很多结果:

SELECT url FROM url2 WHERE html LIKE '%Yuva%' OR url LIKE '%Yuva%' 

搜索词yuva可以根据用户请求进行更改 它会选择大量我不需要的数据,我怎么能避免这种情况呢? 上述查询的输出为
www.123musiq.com
www.123musiq.com/home.html
www.123musiq.com/yuva.html
www.sensongs.com/
www.sensongs.com/hindi.html
www.sensongs.com/yuva.html

我需要的输出是
根据相关性,它应该排序像
www.123musiq.com/yuva.html
www.sensongs.com/yuva.html
www.sensongs.com/hindi.html

从我的朋友的评论中我将表格更改为MyISAM,但是我在提交123musiq.com文件后大约25个,之后我就知道了感觉。我可以从123musiq.com获得2,从sensongs.com获得2,按相关性排序

2 个答案:

答案 0 :(得分:0)

也许您想使用LIMIT?

SELECT * FROM url2 WHERE html LIKE '%Yuva%' OR url LIKE '%Yuva%' LIMIT 2

答案 1 :(得分:0)

似乎你要求Full Text Index,在MySQL中只能在MyISAM表上使用。

由于您使用的是InnoDB表,最简单的解决方案是创建一个新的(MyISAM)表,其中只包含文本内容和与原始表连接的索引(这也有助于在某些常见情况下寻求效率)。