mysql改编查询显示我表的所有记录

时间:2015-01-04 07:49:01

标签: mysql

我是mysql的初学者,我有这个问题:

SELECT ((ACOS(SIN('45' * PI() / 180) * SIN(latitude * PI() / 180) + COS('45' * PI() / 180) * COS(latitude * PI() / 180) * COS(('-75' - longitude) * PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS `distance` FROM `account` HAVING `distance`<='100' ORDER BY `distance` ASC

这很好用,但它只能给我一些距离作为结果...我想拥有我桌子的所有字段......我试过了

从帐户中选择*在哪里(...)作为距离..但它不起作用...任何人都可以帮我修改此查询...谢谢

1 个答案:

答案 0 :(得分:0)

使用MySQL,如果您想在*语句中使用SELECT,并结合其他字段/表达式(换句话说,只需要SELECT *以外的任何内容),您需要使用表别名。所以你的代码需要看起来像这样:

SELECT a.*,
       ((ACOS(SIN('45' * PI() / 180) * SIN(latitude * PI() / 180) + COS('45' * PI() / 180) * COS(latitude * PI() / 180) * COS(('-75' - longitude) * PI() / 180)) * 180 / PI()) * 60 * 1.1515) AS `distance`

FROM `account` AS a

HAVING `distance`<='100' 

ORDER BY `distance` ASC;