求解 关于站内搜索的问题
关于站内搜索 有几个小疑惑 请大家帮忙解释下
单关键字就不用说了 主要是多关键字,在多关键字搜索的时候是不是要把关键字分割成数组?如果是分割成数组(不能确定数组的长度,因为不知道用户会输入几个关键字),那么sql中的where该怎么写?
我看的教程是这样写的
$sql = select * from bbs where title like '%$array[0]%' or content like '%$array[1]%';
如果是这样,那么如果title中有$array[1] , content中有$array[0]岂不是搜不出来?
------解决方案--------------------
如果对于小数据量,可以这样:
假设用户输入一堆关键字,按照空格(或逗号)分割成数组,假设叫$array
$sql=select * from tablename where 1=1
foreach ($array as $value)
{
$sql.= and title like '%$value%' or content like '%$value%'
}
博主的这个sql 如果有几万的纪录跑起来,就相当吃力了。
数据库的like查询是便利所有的表纪录,时间复杂度是O(n)
如果数据多的话,考虑给title content分词,使用哈希表O1的效率下找到对应表的主键,再从数据库查询
0
0
相关文章
初学者学php关联数组咋用_初学者学php关联数组用法【实践】
PHP怎么注释可变参数_PHP可变参数注释【灵活】
php如何定义数组_php定义数组多种格式用法【实例】
PHP探针怎样兼容低版本PHP_PHP探针兼容低版本方法【说明】
如何解决 PHP 中的 “Undefined array key” 警告?
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
C++ 高级模板编程与元编程
本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。
10
2026.01.23
Golang 性能分析与pprof调优实战
本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。
9
2026.01.22
热门下载
相关下载
精品课程
相关推荐
/
热门推荐
/
最新课程
最新文章







