我看了看,试了试过但没有成功。我有一个查询,用于显示特定距离范围内的用户。它工作得很好,但它返回我users
表中的所有用户,我希望它只返回account_type
中的值等于' 1'的用户。所以基本上不同类型的帐户类型共享我的用户表,在这个页面上我只想要显示一种类型的用户。我尝试过各种各样的事情,包括加入我认为没有意义的同一张桌子,无论如何它都没有用。 基本上,我想知道在这个查询中我可以添加一个' WHERE'用于检查名为' account_type'。
这是我的功能查询:
SELECT `user_id`, ( 3959 * acos( cos( radians('".$lat."') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('".$lng."') ) + sin( radians('".$lat."') ) * sin( radians( lat ) ) ) ) AS distance FROM users HAVING distance <= '".$dist."' ORDER BY distance
由于我只想从该表中返回account_type = 1的用户,因此我尝试了以下几种不同的变体,但没有成功:
SELECT `user_id`, `account_type`, ( 3959 * acos( cos( radians('".$lat."') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('".$lng."') ) + sin( radians('".$lat."') ) * sin( radians( lat ) ) ) ) AS distance FROM users ***WHERE `account_type` = '1'*** HAVING distance <= '".$dist."' ORDER BY distance
SELECT `user_id`, `account_type`, ( 3959 * acos( cos( radians('".$lat."') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('".$lng."') ) + sin( radians('".$lat."') ) * sin( radians( lat ) ) ) ) AS distance FROM users HAVING distance <= '".$dist."' ***WHERE `account_type` = '1'*** ORDER BY distance
尽管我还没有进一步污染这个话题,但还有很多其他人。有人可以告诉我我做错了什么吗?谢谢
答案 0 :(得分:0)
@rhavendc是对的。我是个白痴。我创建的用于测试此帐户的帐户我使用了一些远处的位置,虽然我的网站上有超过20个测试帐户,但在我的测试帐户使用的疯狂位置的100英里内没有一个匹配account_type ='1 “
所以,一旦我意识到只需2秒钟就可以使用此查询来获得正确的结果
$ qry =“SELECT user_id
,(3959 * acos(cos(radians('”。$ lat。“'))* cos(弧度(纬度))* cos(弧度(lng) - 弧度('“。$ lng。”'))+ sin(弧度('“。$ lat。”'))* sin(弧度(纬度))))AS距离用户WHERE account_type ='1'HAVING distance&lt; ='“。$ dist。”'按距离排序“;
感谢大家的投入。我为自己的愚蠢而道歉。