如何在MySQL的一个表的一列上进行搜索调用?

时间:2015-01-23 14:57:18

标签: php mysql

我想在MySQL上打电话,我有一张非常大的桌子。我希望查询能够在其中一个列中搜索并找到类似的结果。这是我一直在尝试的SQL查询:

SELECT gene FROM promoter where gene LIKE '%ccl5%' limit 10;

我包括"限制10"试试看吧。我已经对"基因"进行索引。进行此搜索需要5-6秒。如何搜索"短语"在一个具有最低速度的特定coloumn?

我还希望只返回每个结果中的一个。如果我搜索' ccl5'它已被发现好几次了,我得到一份包含所有' ccl5'回。我尝试过使用SELECT DISTINCT,但这会导致服务器长时间处理查询。我还没有看到它完成此命令。

1 个答案:

答案 0 :(得分:1)

如果你的价值非常大,你可以试试InnoDB fulltext index

ALTER TABLE promoter add fulltext index index_name(gene);

然后选择它:

SELECT gene FROM promoter WHERE match (gene ) against ('ccl5');