我正在使用一个名为“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,按相关性排序
答案 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)表,其中只包含文本内容和与原始表连接的索引(这也有助于在某些常见情况下寻求效率)。