如何使用MySQL列别名进行计算?

2023-12-20

如何使用两个子查询中的列别名(lat 和 lng)来进行下面的距离计算?我基本上想做的是使用经度和纬度值计算两个位置之间的距离。但不知何故,我的别名在查询中无法使用,为什么?

SELECT wp_posts.*,
(SELECT wp_postmeta.meta_value FROM wp_postmeta WHERE wp_postmeta.post_id = wp_posts.ID   AND wp_postmeta.meta_value LIKE '41.%') AS lat,
(SELECT wp_postmeta.meta_value FROM wp_postmeta WHERE wp_postmeta.post_id = wp_posts.ID AND wp_postmeta.meta_value LIKE '2.%') AS lng,
(3959 * acos( cos( radians(41.367682) ) * cos( radians( 'lat' ) ) * cos( radians('lng') -     radians(2.154077)) + sin(radians(41.367682)) * sin( radians('lat')))) AS distance
FROM wp_posts, wp_postmeta
WHERE wp_posts.ID = wp_postmeta.post_id AND wp_postmeta.meta_key = 'position' AND wp_posts.post_status = 'publish' AND wp_posts.post_type = 'page' AND wp_posts.post_date <  NOW()
GROUP BY ID
ORDER BY distance ASC

好的,您需要在这里做的是在不同的别名下连接同一个表(wp_postmeta)两次,以便您可以使用不同的“WHERE”条件。我没有你的表格,所以我无法测试这个,但这是你想要使用的方法:

SELECT wp_posts.*,
     (`alias_1`.meta_value) AS `lat`,
     (`alias_2`.meta_value) AS `lng`,
     (3959 * acos( cos( radians(41.367682) ) * cos( radians( `lat` ) ) * cos( radians( `lng` ) -     radians(2.154077)) + sin(radians(41.367682)) * sin( radians( `lat` )))) AS `distance`
FROM wp_posts
     LEFT JOIN `wp_postmeta` AS `alias_1` ON wp_posts.ID = alias_1.post_id
     LEFT JOIN `wp_postmeta` AS `alias_2` ON wp_posts.ID = alias_2.post_id
WHERE 
     wp_posts.post_status = 'publish' 
     AND wp_posts.post_type = 'page' 
     AND wp_posts.post_date <  NOW()
     AND `alias_1`.meta_key = 'position'
     AND `alias_1`.meta_value LIKE '41.%'
     AND `alias_2`.meta_key = 'position'
     AND `alias_2`.meta_value LIKE '2.%'
GROUP BY wp_posts.`ID`
ORDER BY `distance` ASC

我可能有一些语法错误,但我相信逻辑大致是正确的。让我知道这个是否奏效。

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

如何使用MySQL列别名进行计算? 的相关文章

  • 如何使用 Elastica Search 和 Symfony2 执行嵌套查询

    我有一个食谱实体 其中有一些标签 多对多映射 我想按标签搜索食谱 这是我的食谱实体 ORM Entity ORM Table name recipes ORM HasLifecycleCallbacks ExclusionPolicy al
  • PHP MySQL 仅当 IP 是新时才更新列

    我试图让我的脚本在每次 IP 出现新值时将观看次数更新 1 604800秒后 如果同一用户 同一IP 在604800秒后再次回来 则查看计数 1 有人可以帮我吗 Get video id id GET id Get video title
  • Java长到MySQL

    Java相当于什么long在 MySQL 的上下文中数据类型 SIGNED BIGINT http dev mysql com doc refman 5 0 en numeric types html是一个 8 字节长的整数 就像 Java
  • 插入前检查数据库中是否存在行

    DBH new PDO dsn username password opt DBH gt setAttribute PDO ATTR ERRMODE PDO ERRMODE EXCEPTION DBH gt setAttribute PDO
  • 限制检索的行数 MySql、Laravel

    问题 我的问题是使用 Mysql 或 Laravel 通过查询返回的行数是否有限制 首先 我使用 Laravel 5 2 我试图从日志表中检索数据 该表最近已超过 10k 行 现在从那时起 或大约那个时候 用于检索数据的常用 Laravel
  • 从 dacpac 获取计算列的 DataType

    当遍历一个Dacpac通过 C 代码 我能够找出计算列中引用了哪些列 GetReferenced Microsoft SqlServer Dac Model Column ExpressionDependencies 以及该列的表达式是什么
  • MySQL-创建索引需要多长时间?

    谁能告诉我如何在 MySQL 中添加键扩展 我的数据库有 500 000 000 行 trans 列有 i INT UNSIGNED j INT UNSIGNED nu DOUBLE A DOUBLE 我尝试为一列建立索引 例如 ALTER
  • 相当于 pandas 'transform' 的 SQL 是什么?

    假设您有以下 SQL 表 A B C 2 1 4 3 4 5 3 1 1 1 4 0 5 0 1 并且您想要添加 显示一个列 其中包含 A 列对于 B 列的每个不同值的平均值 或任何其他聚合函数 您想要保留所有列 所以结果会是这样的 A B
  • ImportError:没有使用 Python3 的名为 mysql.connector 的模块?

    尝试导入python mysql connector on Python 3 2 3并收到奇数堆栈 我怀疑我的 ubuntu 12 04 安装配置错误 vfi ubuntu usr share pyshared python3 Python
  • 强制连接第一个表中的所有行

    我有三张桌子 machines拿着自动售货机 products持有所有可能的产品 并且machines products这是两者的交集 给出了特定机器中每个产品线的库存数量 如果机器中没有库存产品 则第三个表中没有相应的行 DESCRIBE
  • MySQL空间几何验证wkt

    在 MySQL mysql gt select astext geomfromtext polygon astext geomfromtext polygon NULL 1 row in set 0 00 sec 但对于较新的 MySQL
  • mysql查询获取根父级

    我的表中有以下数据categories id parent id title 1 0 A 2 1 B 3 2 C 4 3 D 5 4 E 现在我想获取类别 id 4 的根类别标题 parent id 0 即标题 A 的类别 id 1 如何在
  • MySQL JOIN 的评估顺序是什么?

    我有以下查询 SELECT c FROM companies AS c JOIN users AS u USING companyid JOIN jobs AS j USING userid JOIN useraccounts AS us
  • 如何使用Hibernate从Mysql获取最后一条记录?

    List
  • Ubuntu 12.04.5 LTS 中无法通过套接字“/var/run/mysqld/mysqld.sock”连接到本地 MySQL 服务器

    我遇到了错误无法在 Ubuntu 12 04 5 LTS 中通过套接字 var run mysqld mysqld sock 连接到本地 MySQL 服务器 So I 卸载了mysql 5 5从 Ubuntu 12 04 5 LTS 开始
  • 如何重置 MySQL 5.7 上的默认“root”用户行为

    我对新的 MySQL 5 7 root 用户行为感到满意 它只允许本地主机上的linux root用户以MySQL root用户身份登录MySQL 我最近导入了我的旧用户表 它覆盖了这个更改 现在任何人都可以使用密码在本地主机上以 root
  • 什么时候数据库被称为嵌入式数据库?

    术语 嵌入式数据库 与 数据库 具有不同的含义吗 我见过的嵌入式数据库有两种定义 嵌入式数据库就像专门为 嵌入式 空间 移动设备等 设计的数据库系统一样 这意味着它们在紧张的环境中 内存 CPU 方面 可以合理地执行 嵌入式数据库就像不需要
  • django在服务器上同步数据库时出错

    我有一个完整运行的区域设置 django 应用程序 但我在迁移到 site5 服务器时遇到了麻烦 当我启动 django 时syncdb命令 我所有模型的表都已创建 但是然后 我猜当它创建关系表时 我收到以下错误 mysql excepti
  • mysql 触发器与 php 脚本

    我有下一个 mysql 触发器 DELIMITER CREATE TRIGGER Test Insert BEFORE INSERT ON sat clientLocation FOR EACH ROW BEGIN DECLARE cmd
  • 在 MySQL 查询中一起使用 DISTINCT 和 COUNT

    这样的事情可能吗 SELECT DISTINCT COUNT productId WHERE keyword keyword 我想要的是获取与关键字关联的唯一产品 ID 的数量 同一产品可能与一个关键字关联两次或多次 但我希望每个产品 ID

随机推荐