SQL 语法错误 - 半正矢公式

2024-01-03

我试图获取最近的地点 https://stackoverflow.com/questions/4645490/get-nearest-places-google-maps-mysql-spatial-data/4979891使用 WordPress 数据库半正矢公式 http://en.wikipedia.org/wiki/Haversine_formula

我的表结构如下

posts

+--------------+
| Field        |
+--------------+
| ID           |
| post_author  |
| post_title   | 
| post_type    | 
+--------------+

postmeta

+--------------+
| Field        |
+--------------+
| meta_id      |
| post_id      |
| meta_key     |
| meta_value   |
+--------------+

并有记录meta_key values latitude and longitude

See the 回答我之前的问题 https://stackoverflow.com/questions/13249724/selecting-a-join-tables-column-values-as-result-column-name对于我用来获取纬度和经度的 SQL。

SELECT p.ID, 
  p.post_title, 
  p.post_author,
  max(case when pm.meta_key='latitude' then pm.meta_value end) latitude,
  max(case when pm.meta_key='longitude' then pm.meta_value end) longitude
FROM `wp_posts` p
LEFT JOIN `wp_postmeta` pm
  on p.ID=pm.post_id 
WHERE p.post_type='place' 
  AND (pm.meta_key='latitude' OR pm.meta_key='longitude') 
GROUP BY p.ID, p.post_title, p.post_author
ORDER BY p.ID ASC

现在我想将上面的查询合并到回答这个问题 https://stackoverflow.com/questions/4645490/get-nearest-places-google-maps-mysql-spatial-data/4979891#4979891

SELECT item1, item2, 
    ( 3959 * acos( cos( radians(37) ) 
                   * cos( radians( lat ) ) 
                   * cos( radians( lng ) 
                       - radians(-122) ) 
                   + sin( radians(37) ) 
                   * sin( radians( lat ) ) 
                 )
   ) AS distance 
FROM geocodeTable 
HAVING distance < 25 
ORDER BY distance LIMIT 0 , 20;

下面是组合查询

SELECT ID, 
  post_title, 
  post_author,
  max(case when meta_key='latitude' then meta_value end) latitude,
  max(case when meta_key='longitude' then meta_value end) longitude,
  ( 3959 * acos( cos( radians(18.204540500000) ) 
                   * cos( radians( latitude ) ) 
                   * cos( radians( longitude ) 
                       - radians(-66.450958500000) ) 
                   + sin( radians(18.204540500000 ) 
                   * sin( radians( latitude ) ) 
                 )
   ) AS distance 
FROM `wp_posts` 
LEFT JOIN `wp_postmeta` 
  on ID=post_id 
WHERE post_type='place' 
  AND (meta_key='latitude' OR meta_key='longitude') 
GROUP BY ID, post_title, post_author
ORDER BY ID ASC

但这会产生语法错误

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS distance FROM `wp_posts` LEFT JOIN `wp_postmeta` on ID=post_id WHERE po' at line 13

你错过了一个结束语)为了第一sin()

( 3959 * acos( cos( radians(18.204540500000) ) 
                   * cos( radians( latitude ) ) 
                   * cos( radians( longitude ) 
                       - radians(-66.450958500000) ) 
                   + sin( radians(18.204540500000 ) ) /* <--- here */
                   * sin( radians( latitude ) ) 
              )
 ) AS distance 

虽然很难从视觉上发现,但我通过将代码复制到支持大括号匹配的文本编辑器中发现了这一点。强烈建议使用一种,如果不是用于查询开发和测试,那么至少用于调试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL 语法错误 - 半正矢公式 的相关文章

  • MySql 视图脚本中的注释

    可以这样做吗 我尝试过多个 gui mysql workbench navicat toad for mysql 但没有一个保存这样的注释 something important select something else importan
  • SQL:如何从一个表中获取另一个表中每一行的随机行数

    我有两个数据不相关的表 对于表 A 中的每一行 我想要例如表 B 中的 3 个随机行 使用光标这相当容易 但速度非常慢 那么我该如何用单个语句来表达这一点以避免 RBAR 呢 要获得 0 到 N 1 之间的随机数 可以使用 abs chec
  • 支持 >65k 行的 Excel VBA SQL 驱动程序

    在 Excel 2010 中通过 VBA 查询 Excel 数据时 我遇到一个有趣的问题 我正在使用这些驱动程序连接到 xls 或 xls x m 文件 Sub OpenCon ByRef theConn As Connection ByV
  • SQL Server 查询中 UNION ALL 与 OR 条件

    我必须根据表上不存在的条件选择一些行 如果我使用如下的 union all 它会在不到 1 秒的时间内执行 SELECT 1 FROM dummyTable WHERE NOT EXISTS SELECT 1 FROM TABLE t WH
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • 计算2个日期之间每个日期的记录数

    我必须创建一个查询来返回多轴图表的结果 我需要计算为 2 个日期之间的每个日期创建的 ID 数量 我试过这个 DECLARE StartDate datetime2 7 11 1 2020 EndDate datetime2 7 2 22
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • 具有不同组合的产品和产品包的数据库模型

    您将如何设计数据库来实现此功能 考虑一个场景 我们想要创建一个产品关系 封装 假设我们创建一个产品表 prod id prod name prod fee 1 prepaid A 19 usd 2 prepaid B 29 usd 3 pr
  • 使用 MYSQL 将 h:mm pm/am 时间格式插入数据库

    我正在尝试将以 h mm am pm 格式写入的时间插入到存储为标准 DATETIME 格式 hh mm ss 的数据库中 但我不知道如何将发布的时间转换为标准格式所以数据库会接受它 这是我到目前为止一直在尝试的 title POST in
  • MySQL 概念:会话与连接

    我对 MySQL 的概念有点困惑 会话与连接 当谈论连接到 MySQL 时 我们使用连接术语 连接池等 然而在 MySQL 在线文档中 http dev mysql com doc refman 4 1 en server system v
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len
  • 总和和不同不会改变结果?

    我是一个新手 试图在这里解决这个问题 到目前为止还没有运气 非常感谢任何帮助 Select Distinct AB agency no ab branch no AS AGENCY BRANCH count AB agency no ab
  • mysql 不带空字符串和 NULL 的不同值

    如何检索没有空字符串值和NULL值的mysql不同值 SELECT DISTINCT CON EMAILADDRESS AS E MAIL FROM STUDENT INNER JOIN CONTACT CON ON STUDENT CON
  • mysql 如何将 varchar(10) 转换为 TIMESTAMP?

    我已将所有日期存储到数据库中varchar 10 现在我想将它们转换为 TIMESTAMP 当我运行sql时 ALTER TABLE demo3 CHANGE date date TIMESTAMP NOT NULL 它提醒 1292 In
  • SKIP加锁和nowait的区别

    pl sql 中 SKIP 锁定游标和 nowait 游标之间的区别 我认为我找到的这张图片是描述差异的最佳例子 详细说明 http viralpatel net blogs oracle skip locked
  • 使用 DISTINCT 进行查询需要很长时间

    我正在使用 Microsoft Access 2003 我的项目中的一个表单需要很长时间才能向用户显示 这是适用的查询 SELECT DISTINCT tb KonzeptDaten DFCC tb KonzeptDaten OBD Cod
  • 在 plpgsql 函数中使用 quote_ident()

    我是创建 plpgsql 函数的新手 我需要一些有关在函数内部执行的动态命令上使用 quote ident 甚至 quote literal 的说明 希望有人能给我一个关于它们如何在函数内部工作的具体解释 TIA 这是一个例子 EXECUT
  • 基本的多对多sql选择查询

    我认为这应该很容易 但它却在逃避我 我的帐户和帐户组之间存在多对多关系 一个帐户可以位于零个或多个组中 因此我使用标准连接表 Accounts ID BankName AcctNumber Balance AccountGroups ID
  • 在 MySQL 数据库中保持 TEXT 字段唯一的最佳方法

    我想让 TEXT 字段的值在我的 MySQL 表中唯一 经过小型研究 我发现由于性能问题 每个人都不鼓励在 TEXT 字段上使用 UNIQUE INDEX 我现在想用的是 1 创建另一个字段来包含 TEXT 值的哈希值 md5 text v
  • 为什么 ISNUMERIC('.') 返回 1?

    最近我在 SQL Server 中使用 ISNUMERIC 时遇到了一个问题 导致找到了这段代码 SELECT ISNUMERIC 这会返回 1 如 true 所示 难道不应该像 false 一样返回 0 吗 See Numeric 损坏了

随机推荐

  • Ember 的 registerBoundHelper 和车把块

    所以我已经从here https github com danharper Handlebars Helpers并修改它 以便它使用 registerBoundHelper 通过 Ember 注册它的助手 我这样做的原因是因为我基本上需要一
  • *** _pickle.UnpicklingError:pickle 数据被截断

    我有一个包含一千个 pickle 文件的目录 我将它们一一加载 如下所示 我正在使用 python3 import pickle for data in directory with open data rb as handle pickl
  • 过度使用泛型[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 当没有明显的实际好处时 人们对泛型的
  • 从 CSV 中删除行

    我有一个包含多个标题的 csv 文档 例如 Date RQ PM SME Activity Status code 2 2 12 6886 D WV John Smith Recent 2004 以及一个文本文档 它只是状态代码的列表 每行
  • 将对象传递给网络工作者

    我正在尝试通过 postMessage 函数将对象传递给网络工作者 这个对象是一个正方形 有几个功能可以在画布上和其他东西上绘制自己 Web Worker 必须返回此对象的数组 问题是 当我使用该对象调用 postMessage 函数时 出
  • 将 SendGrid 与 appharbor 一起使用时出现问题

    我正在使用 appharbor 添加 SendGrid 作为插件 他们为我提供了 smtp 主机 smtp sendgrid com 端口 587 用户 32adf793 2cbf 492c 9bb9 apphb com 当我使用这些详细信
  • Collectors#toList 的运行时复杂性

    在Java库源代码中 Collectors toList方法定义如下 public static
  • Mailchimp 注册表单与 angular2 [重复]

    这个问题在这里已经有答案了 我正在尝试将 mailchimp 注册表单嵌入到我的 angular2 应用程序中 http kb mailchimp com lists signup forms add a signup form to yo
  • 取消部署出现错误:应用程序未注册(Glassfish)

    我使用 Glassfish 的 Web GUI 取消部署了我的应用程序 但是 如果我按取消部署我的实际应用程序 则什么也不会发生 在我的日志文件中出现新错误 应用程序未注册 严重 我现在如何正确取消部署我的APP 我找到了一个简单的答案 从
  • SWT:单显示器与多显示器

    SWT 旨在支持多种Display实例 每个实例都有自己的事件循环 这对于什么目的是有用的或需要的 不是一个Display实例 例如Display getDefault 充足的 Display 类的文档说 使用 SWT 构建的应用程序几乎总
  • 无法在 Safari 或 UIWebView 中通过 HTTPS 查看 Quicktime 影片

    我试图让我的 iPhone 应用程序除了 HTTP 之外还可以使用 HTTPS 但使用 UIWebView 或 MPMoviePlayerController 查看 Quicktime MOV 文件似乎无法通过 HTTPS 工作 我得到 这
  • Android 中 OOM(内存不足异常)是如何发生的?

    我正在尝试显示来自画廊的图像或从相机捕获的图像ImageView 我开始得到OOM正在处理中 所以我决定找出它是如何工作的 所以我尝试使用不同尺寸的图像 这是观察结果 我尝试将 19KB 的图像加载到ImageView并收到以下错误消息 无
  • Flutter:在“bottomNavigationBar”上显示“showBottomSheet”

    我如何在 bottomNavigationBar 顶部显示 showBottomSheet 说明性示例 当用户单击图钉 屏幕1 时 结果是 屏幕2 但我想得到 屏幕3 return Scaffold appBar AppBar title
  • 在 PyTorch 中使用 module.to() 移动成员张量

    我正在 PyTorch 中构建变分自动编码器 VAE 但在编写与设备无关的代码时遇到问题 自动编码器是nn Module具有编码器和解码器网络 它们也是 网络的所有权重都可以通过调用从一台设备移动到另一台设备net to device 我遇
  • tkinter python 最大化窗口

    我想将窗口初始化为最大化 但我不知道该怎么做 我在 Windows 7 上使用 python 3 3 和 Tkinter 8 6 我想答案就在这里 http www tcl tk man tcl TkCmd wm htm m8 http w
  • doctype 影响 html/body/canvas 的宽度和高度

    我有一个非常简单的带有画布的 HTML 文件 我已经实现了 resizeToWindow 函数 因此如果用户调整浏览器窗口的大小 画布也会随之调整 但是 我的窗口中出现了滚动条 我注意到画布下方有一个小的白色区域 当我使用元素检查工具时 该
  • 如何记录 PHP + cURL 发出的 http 请求?

    我设置了一个 PHP 脚本 每当在站点上执行操作时都会发出 cURL 请求 问题在于 每当操作运行时 信息都会被 POST 两次 我需要弄清楚这是否是我的问题 cURL 运行了两次 或者它发布到的 URL 执行了两次操作 我想最好的方法是查
  • 根据单元格增加 TableView 高度

    我需要增加UITableView高度基于UITableViewCell内容大小 我正在使用自定义 Google 自动完成 我有一个UITextField 当我在其中输入一个字母时UITextField它会打电话shouldChangeCha
  • 从 SignalR .NET 客户端连接到工作中心时出现 HttpClientException

    我有一个有效的 SignalR 应用程序 它允许我连接多个 JavaScript 客户端并交换数据 当我尝试连接 NET 客户端时 出现以下错误 An exception of type Microsoft AspNet SignalR C
  • SQL 语法错误 - 半正矢公式

    我试图获取最近的地点 https stackoverflow com questions 4645490 get nearest places google maps mysql spatial data 4979891使用 WordPre