Home > Backend Development > PHP Tutorial > 请教,SQL语句里如何运行PHP函数对查询的结果进行限制?

请教,SQL语句里如何运行PHP函数对查询的结果进行限制?

WBOY
Release: 2016-06-23 14:01:34
Original
747 people have browsed it

请各位帮帮忙,程序的作用是先执行SQL后,对查询出的结果进行显示,但是如果再查询后在进行判断显示的话分页会出问题,代码如下:

$_BCACHE->cachesql('shopsearch', 'SELECT i.itemid,m.mapapimark,m.itemid FROM '.DB::table('shopitems').'  i LEFT JOIN '.DB::table('shopmessage').' m ON i.itemid=m.itemid WHERE m.mapapimark!="" ', 0, 1, $tpp, 0, 'index', 'shop');$multipage = $_SBLOCK['shopsearch_multipage'];$resultcount = $_SBLOCK['shopsearch_listcount'];foreach($_SBLOCK['shopsearch'] as $value) {	$value = $_BCACHE->getshopinfo($value['itemid']);//商家坐标数据处理$value['X_preg1'] = preg_replace('/\(/', '', $value['mapapimark']);//去除X坐标前面的括号$value['storeX'] = preg_replace('/,(.*)/','',$value['X_preg1']);//去除Y坐标以及前面的逗号,只保留X坐标$value['Y_preg1'] = preg_replace('/\)/', '', $value['mapapimark']);//去除Y坐标后面的括号$value['storeY'] = preg_replace('/(.*),/', '',$value['Y_preg1']);//去除X坐标以及后面的逗号,只保留Y坐标$value['juli'] = GetDistance($ClientY,$ClientX,$value['storeY'],$value['storeX'], 2);$value['juli'] = round($value['juli'],2);if($value['juli'] <= $Distance){	$shoplist[] = $value;	}}	
Copy after login

这个是DZ里面的一段代码,我想在WHERE m.mapapimark!="" 这个语句里,调用计算函数GetDistance对查询出的mapapimark进行计算,如果计算出的结果小于$Distance,才查询出该条数据,该如何写? 先谢谢各位。


回复讨论(解决方案)

如果你使用的是 sqlite 数据库就可以,否则不可以
你可以书写数据库函数,也可以在结果集中过滤

计算建议还是在php代码里面完成,数据库计算复杂的话会影响性能

不解,php 计算复杂就不会影响性能了吗?

计算建议还是在php代码里面完成,数据库计算复杂的话会影响性能

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template