我正在使用这样一个简单的mysql LIKE查询:
SELECT * FROM myTable WHERE field LIKE 'aaa%' ORDER BY field2
我在"字段"上有一个全文索引,但它仍然很慢.我知道有一个选项可以使用匹配.有什么不同?怎么样?我使用的最佳方法是什么?请注意我使用"%"表示以"aaa"开头的所有内容
更新:我最终使用了这样的东西:
SELECT
*, MATCH (name) AGAINST ('a*' IN BOOLEAN MODE) AS SCORE
FROM
users
WHERE
MATCH (name) AGAINST ('a*' IN BOOLEAN MODE)
ORDER BY SCORE, popularity DESC LIMIT 4
我想改变的一件事是,首先不是SCORE的顺序,而是我的现场流行度,而是通过一个简单的权重函数来命令,比如0.5*SCORE + 0.5*流行度.怎么样?
Jac*_*cob 10
LIKE不使用全文索引.要使用全文索引,您必须使用匹配(如您所说):
SELECT *
FROM myTable
WHERE MATCH(field) AGAINST ('aaa*' IN BOOLEAN MODE)
ORDER BY field2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9317 次 |
| 最近记录: |