gpt4 book ai didi

php - MySQL 与 AS 结合 HAVING 的困难

转载 作者:行者123 更新时间:2023-11-29 02:55:45 24 4
gpt4 key购买 nike

我有一个与 AS 相关的 MySQL 问题,特别是与 HAVING 结合使用时:

确实有效(注意“(250) AS”,第二行):

SELECT A.uid, A.name, A.height, A.width,
(250) AS squaresize
FROM tx_fach_domain_model_professional A,
tx_fach_domain_model_category B,
tx_fach_professional_category_mm MM
WHERE MM.uid_local = A.uid and
MM.uid_foreign = 2
HAVING squaresize > 20
ORDER BY squaresize LIMIT 0 , 4;

有效:

SELECT A.uid, A.name, A.height, A.width,
(A.height * A.width) AS squaresize
FROM tx_fach_domain_model_professional A,
tx_fach_domain_model_category B,
tx_fach_professional_category_mm MM
WHERE MM.uid_local = A.uid and
MM.uid_foreign = 2
HAVING squaresize > 20
ORDER BY squaresize LIMIT 0 , 4;

奇怪的是它没有给我任何错误,但它只是返回 4 个完全相同的行/记录,而不是 4 个不同的行/记录。

这里很无能..

以上是我实际问题的简化版本。在我上面的示例中有 (200) 的地方,我实际上是在尝试测量经度和纬度值之间的距离值:

SELECT A.uid, A.name, A.latitute, A.longitute,
( 6371 * acos ( cos ( radians(52.52000659999999) )
* cos( radians( A.latitute ) ) * cos( radians( A.longitute ) -
radians(13.404953999999975) ) + sin ( radians(52.52000659999999) ) * sin(
radians( A.latitute ) ) ) ) AS distance
FROM tx_fach_domain_model_professional A,
tx_fach_domain_model_category B,
tx_fach_professional_category_mm MM WHERE MM.uid_local = A.uid and
MM.uid_foreign = 2 HAVING distance < 20 ORDER BY distance LIMIT 0 , 4;

现在只要我不使用 HAVING distance < 20 ORDER BY distance .. 但是一旦我使用这些,我就会得到 4 个完全相同的结果,而不是预期的 4 个不同 结果。

但是,在我的简化示例中,我遇到了完全相同的问题。

[解决方案] 这就是解决问题的方法,并提供了我需要的功能 - 正如@AsConfused 所提议的:

SELECT A.uid, A.name, A.latitute, A.longitute,
( 6371 * acos ( cos ( radians(52.52000659999999) )
* cos( radians( A.latitute ) ) * cos( radians( A.longitute )
radians(13.404953999999975) ) + sin ( radians(52.52000659999999) ) *
sin(radians( A.latitute ) ) ) ) AS distance
FROM tx_fach_domain_model_professional A JOIN
tx_fach_professional_category_mm MM
on MM.uid_local = A.uid and MM.uid_foreign = 2
HAVING distance < 20
ORDER BY distance LIMIT 0 , 4;

谢谢!!!

最佳答案

SELECT A.uid, A.name, A.height, A.width
FROM tx_fach_domain_model_professional A
Join tx_fach_professional_category_mm MM
on MM.uid_local = A.uid and
MM.uid_foreign = 2
LIMIT 0 , 4;

请注意,squaresize 是硬编码的,在您所说的顶部 block 中没有用。 250为前端所知

关于php - MySQL 与 AS 结合 HAVING 的困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30757115/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com