2010-08-17 75 views
0

我正在使用名为“url2”的表与MySQL的InnoDB引擎。我有一个页面的完整的HTML,网页的URL有这么多的数据,等等....当我使用下面的SQL查询我得到很多结果:如何从MySQL中提取相关数据?

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之后,我geting sensongs.how我可以得到2从123musiq.com和2从sensongs.com,按相关性排序

+4

好了,你还没有告诉我们你在一个数据想找什么样的解释,为什么你不希望整个结果... – Fosco 2010-08-17 19:49:28

+0

你能提供的表模式和具体是什么,你正在寻找从数据? Yuva没有告诉我们相关性。 – 2010-08-17 19:59:02

回答

0

看来你问一个Full Text Index,这在MySQL只在MyISAM表可用。

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

+0

我们该怎么做呢?它快吗?我有数据arount 1TB – Jesvin 2010-08-17 20:43:43

+0

它索引的全文,因此,任何这样的搜索点击索引,而不是数据。 – Javier 2010-08-17 22:17:30

+0

检查文档,您必须创建索引并使用MATCH()查询。只是切换到MyISAM将不会有任何区别,直到你做。 – Javier 2010-08-17 22:19:51

0

也许你想使用LIMIT?

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