【问题标题】:mysql - can't get query to workmysql - 无法让查询工作
【发布时间】:2016-07-10 12:40:09
【问题描述】:

我一辈子都看不出这里出了什么问题。它很可能是愚蠢的,但我目前对此视而不见!我有一个问题:

SELECT 
Links.Title,
(6371 * acos( cos( radians(43.4347229) ) * cos( radians( Links.Latitude ) ) * cos( radians( Links.Longitude ) - radians(6.737222195) ) + sin( radians(43.4347229) ) * sin( radians( Links.Latitude ) ) ) AS distance 
FROM CatLinks,Links WHERE CatLinks.LinkID = Links.ID AND (Links.ID IN (16650,17190,153344) AND Links.isValidated = 'Yes' AND Links.PropertyType IN (1,2,3) AND Links.priceSort <= '9999' AND Links.PropertyType IN (1,2,3) AND Links.priceSort < '9999') ORDER BY distance LIMIT 0,50

..我得到一个错误:

错误:无法执行查询:无法执行查询:'SELECT Links.Title, (6371 * acos( cos( 弧度(43.4347229) ) * cos( 弧度( Links.Latitude ) ) * cos( 弧度( Links.Longitude ) - 弧度(6.737222195))+ sin(弧度(43.4347229))* sin(弧度( Links.Latitude ) ) ) AS 距离 CatLinks,Links WHERE CatLinks.LinkID = Links.ID AND (Links.ID IN (16650,17190,153344)) ORDER BY distance LIMIT 0,50':您的 SQL 语法有错误; 检查与您的 MySQL 服务器版本相对应的手册 在 'AS 距离 FROM CatLinks,Links WHERE 附近使用正确的语法 CatLinks.LinkID =' 在第 3 行

即使将其精简为更简单的查询,也不想工作:

SELECT 
    glinks_Links.Title,
    (6371 * acos( cos( radians(43.4347229) ) * cos( radians( glinks_Links.Latitude ) ) * cos( radians( glinks_Links.Longitude ) - radians(6.737222195) ) + sin( radians(43.4347229) ) * sin( radians( glinks_Links.Latitude ) ) ) AS distance 
    FROM glinks_CatLinks,glinks_Links ORDER BY distance LIMIT 0,50

我整个上午都在讨论这个问题,所以任何建议都将不胜感激!

【问题讨论】:

    标签: mysql


    【解决方案1】:

    您忘记关闭括号(sin( radians( Links.Latitude ) ) ) ) 附近)。试试这个

    SELECT
        Links.Title,
        (
            6371 * acos(
                cos(radians(43.4347229)) * cos(radians(Links.Latitude)) * cos(
                    radians(Links.Longitude) - radians(6.737222195)
                ) + sin(radians(43.4347229)) * sin(radians(Links.Latitude))
            )
        ) AS distance
    FROM
        CatLinks,
        Links
    WHERE
        CatLinks.LinkID = Links.ID
    AND (
        Links.ID IN (16650, 17190, 153344)
        AND Links.isValidated = 'Yes'
        AND Links.PropertyType IN (1, 2, 3)
        AND Links.priceSort <= '9999'
        AND Links.PropertyType IN (1, 2, 3)
        AND Links.priceSort < '9999'
    )
    ORDER BY
        distance
    LIMIT 0,50
    

    【讨论】:

    • 是的 - 基本上在“AS”之前添加一个右括号
    • 啊,我不敢相信我错过了!我一直盯着查询好一个小时了!感谢您节省时间 - 只要允许,我就会将您的答案标记为正确:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-12
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 2011-03-28
    相关资源
    最近更新 更多