Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将单词列表的前缀与mysql DB匹配_Php_Mysql_Wildcard_String Matching - Fatal编程技术网

Php 将单词列表的前缀与mysql DB匹配

Php 将单词列表的前缀与mysql DB匹配,php,mysql,wildcard,string-matching,Php,Mysql,Wildcard,String Matching,我的目标是避免尝试匹配通配符的查询,因为它比匹配前缀和后跟通配符的查询慢X100倍 对于一个单词来说,这不是问题,但是如果我有一个用逗号分隔的单词列表呢 有没有什么有效的方法可以通过前缀(后面有通配符)而不仅仅是通配符来匹配这些单词 我的意思是,在这种情况下,有没有办法避免像%word%这样的匹配模式?假定列表中有索引。否则,前缀匹配与非前缀匹配时,like的性能不应慢100倍。是的,稍微慢一点。但大部分工作应该是从页面读取数据 如果您有一个用逗号分隔的单词列表,那么您的数据结构是错误的。您需要

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

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

有没有什么有效的方法可以通过前缀(后面有通配符)而不仅仅是通配符来匹配这些单词


我的意思是,在这种情况下,有没有办法避免像%word%这样的匹配模式?

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

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


一旦数据被正确地规范化,就可以为查询使用正确的关系结构,而不用像那样使用
来连接表或查找元素。

你说得对,我使用的是索引。你的解决方案又是对的。我会在9分钟内接受你的回答:)