我想在MySQL上打电话,我有一张非常大的桌子。我希望查询能够在其中一个列中搜索并找到类似的结果。这是我一直在尝试的SQL查询:
SELECT gene FROM promoter where gene LIKE '%ccl5%' limit 10;
我包括"限制10"试试看吧。我已经对"基因"进行索引。进行此搜索需要5-6秒。如何搜索"短语"在一个具有最低速度的特定coloumn?
我还希望只返回每个结果中的一个。如果我搜索' ccl5'它已被发现好几次了,我得到一份包含所有' ccl5'回。我尝试过使用SELECT DISTINCT,但这会导致服务器长时间处理查询。我还没有看到它完成此命令。
答案 0 :(得分:1)
如果你的价值非常大,你可以试试InnoDB fulltext index:
ALTER TABLE promoter add fulltext index index_name(gene);
然后选择它:
SELECT gene FROM promoter WHERE match (gene ) against ('ccl5');