SQL语句优化
程序员文章站
2022-05-18 15:26:27
...
在两张表里搜寻关键字,把符合关键字所对应的id查询出来
result1a ->result1,
result2a ->result2,
将sql1 和 sql2 合成一句sql 分别给与标志
相当于执行sql返回下面类型
array(
array("id" => 4,"flat" => 1 ),
array( "id" => 7, "flat" => 1),
array( "id" => 4,"flat" => 2)
);
这样执行一次查询就行了,下面的合并数组都可以免了。
$keyword = "XX"; //关键字$sql1= "select id from table1 where title like "%$keyword%";$result1 = $this->db->getAll($sql1); //sql执行后返回的id数组foreach($result1a as $k=>$v){ $result1[$k]['flat'] = 1; //给一个标识, 让我知道这是从table1里查出来的}$sql2= "select id from table2 where title like "%$keyword%";$result2 = $this->db->getAll($sql2);foreach($result2a as $k=>$v){ $result2[$k]['flat'] = 2;} $result = array_merge_recursive($result1, $result2);
回复讨论(解决方案)
遇到什么问题??
1、你的$result1a,$result1b都是空,循环没什么意义,估计打错了
2、循环体貌似也没什么用
请把问题描述清楚
遇到什么问题??
1、你的$result1a,$result1b都是空,循环没什么意义,估计打错了
2、循环体貌似也没什么用
请把问题描述清楚
result1a ->result1,
result2a ->result2,
将sql1 和 sql2 合成一句sql 分别给与标志
相当于执行sql返回下面类型
array(
array("id" => 4,"flat" => 1 ),
array( "id" => 7, "flat" => 1),
array( "id" => 4,"flat" => 2)
);
$keyword = "XX"; //关键字 $sql1= "select id from table1 where title like "%$keyword%";$result1 = $this->db->getAll($sql1); //sql执行后返回的id数组foreach($result1 as $k=>$v){ $result1[$k]['flat'] = 1; //给一个标识, 让我知道这是从table1里查出来的} $sql2= "select id from table2 where title like "%$keyword%";$result2 = $this->db->getAll($sql2);foreach($result2 as $k=>$v){ $result2[$k]['flat'] = 2;} $result = array_merge_recursive($result1, $result2);
$sql1= "select id,1 as flat from table1 where title like '%$keyword%' union all select id,2 as flat from table2 where title like '%$keyword%'";
这样执行一次查询就行了,下面的合并数组都可以免了。
下一篇: js计算时间过去的时间_时间日期
推荐阅读
-
python:while循环语句及练习题
-
Mybaits 源码解析 (六)----- 全网最详细:Select 语句的执行过程分析(上篇)(Mapper方法是如何调用到XML中的SQL的?)
-
php中$_GET与$_POST过滤sql注入的方法
-
ThinkPHP模板之变量输出、自定义函数与判断语句用法
-
php防止sql注入之过滤分页参数实例
-
《深入理解Java虚拟机》-----第10章 程序编译与代码优化-早期(编译期)优化
-
移动端网站优化 的这些细节 你都注意到了吗?
-
C#_.NetCore_WebAPI项目_EXCEL数据导出(ExcelHelper_第二版_优化逻辑)
-
移动端网站优化的三个小技巧 学会事半功倍
-
你只移动端网站应该如何优化吗?