php - 与 mysql DB 匹配单词列表的前缀

标签 php mysql wildcard string-matching

我的目标是避免尝试匹配通配符的查询,因为它比匹配后跟通配符的前缀的查询慢 100 倍。

对于单个单词来说这不是问题,但是如果我有用逗号分隔的单词列表怎么办?

是否有任何有效的方法可以通过前缀(后面带有通配符)而不是仅通过通配符来匹配这些单词?

我的意思是有什么方法可以避免在这种情况下匹配像 %word% 这样的模式吗?

最佳答案

假设您在列表上有一个索引。否则,前缀匹配与非前缀匹配的 like 性能不应慢 100 倍。是的,稍微慢一些。但大部分工作应该是从页面读取数据。

如果您有一个用逗号分隔的单词列表,那么您的数据结构是错误的。您需要引入一个带有 id 和每个单词的新表。

将数据正确标准化后,您就可以为查询使用正确的关系结构,而无需使用 like 来连接表或查找元素。

关于php - 与 mysql DB 匹配单词列表的前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16176627/

相关文章:

php - 如何从表中选择全部并跳过具有特定值的某些行

makefile - GNU使通配符替代?

common-lisp - 如何在 Common Lisp 中搜索带有通配符的文件?

php - 如何调用辅助类 magento

javascript - foreach slider 仅显示一个数据库条目

php - Laravel 4.1 处理多对多关系

mysql - 根据字段名称插入 CSV 文件

mySQL权威数据库——结合Firebase

php - 将数据插入 mySQL 数据库时出错

api - laravel 4 使用通配符的模式过滤器