请教,yii2查询数据为空,但将其生成的sql语句去执行时是有数据的 [ 2.0 版本 ]
if (!empty($this->lat) && !empty($this->lng) && !empty($this->near_distance))
{
CircleDistance::getInstance($query, $this->lng, $this->lat, $this->near_distance);
}
elseif (!empty($this->lat) || !empty($this->lng))
{
$query->andFilterWhere(['lat' => empty($this->lat) ? null : (double)$this->lat, 'lng' => empty($this->lng) ? null : (double)$this->lng]);
}
通过后台debug调试看的是执行语句是:
SELECT * FROM `s_hotel` WHERE (`lat`=26.411867) AND (`lng`=108.831512) ORDER BY `hotel_id` LIMIT 20;
但是返回空数据,直接将这个语句放在MySQL命令行执行是有数据的。
同样的我多加一个参数后debug的查询语句是:
SELECT * FROM `s_hotel` WHERE (((`lat` >= 26.411417348937) AND (`lat` <= 26.412316651063)) AND (`lng` >= 108.83100994417)) AND (`lng` <= 108.83201405583) ORDER BY `hotel_id` LIMIT 20;
这时返回结果有数据,同样将这条语句拿到命令行执行也是有数据的。
求教,问题可能出现在哪里呢?
共 3 个回答
-
感觉这个层级不太对啊
SELECT * FROM s_hotel WHERE ( ( (lat >= 26.411417348937) AND (lat <= 26.412316651063) ) AND (lng >= 108.83100994417) ) AND (lng <= 108.83201405583) ORDER BY hotel_id LIMIT 20
共 1 条回复jianghaifm 回复于 2016-12-26 17:19 回复这是yii生成的SQL语句,复制拿去执行是对的
jianghaifm
注册时间:2015-12-26
最后登录:2017-05-25
在线时长:4小时17分
最后登录:2017-05-25
在线时长:4小时17分
- 粉丝1
- 金钱50
- 威望0
- 积分90