Mysql - 如何使用字段数据作为 POINT() 函数

标签 mysql sql point

我有一个这样的sql:

SELECT
  userAddress.user_address_complete,
  userAddress.user_address_point,
  deliveryZone.delivery_zone_id,
  St_contains(deliveryZone.delivery_zone_polygon,
  Geomfromtext('POINT(userAddress.user_address_point)')) AS cnt
FROM user_addresses userAddress
LEFT JOIN delivery_zones deliveryZone
  ON (deliveryZone.restaurants_id = 154
  AND St_contains(deliveryZone.delivery_zone_polygon,
  Geomfromtext('POINT(userAddress.user_address_point)'))
  > 0)
WHERE userAddress.user_address_user_id = 1

问题是 POINT(userAddress.user_address_point) 应该使用 userAddress.user_address_point 字段数据,但 sql 无法理解它是一个字段名称并对其进行操作就像一个字符串,所以我们没有结果。

有什么建议吗?

最佳答案

尝试从字符串中排除列名称。将其拆分为 'POINT('userAddress.user_address_point'))

SELECT
  userAddress.user_address_complete,
  userAddress.user_address_point,
  deliveryZone.delivery_zone_id,
  St_contains(deliveryZone.delivery_zone_polygon,
  Geomfromtext('POINT('userAddress.user_address_point')')) AS cnt
FROM user_addresses userAddress
LEFT JOIN delivery_zones deliveryZone
  ON (deliveryZone.restaurants_id = 154
  AND St_contains(deliveryZone.delivery_zone_polygon,
  Geomfromtext('POINT('userAddress.user_address_point')'))
  > 0)
WHERE userAddress.user_address_user_id = 1

关于Mysql - 如何使用字段数据作为 POINT() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38974497/

相关文章:

php - 插入mysql不完整值字段

php - 如果 MySQL 行包含数组中的变量,请更新它?

mysql - 使用 Retrosheet 棒球数据对 SQL 查询进行分组和计数

c - 对 pow 的 undefined reference

mysql - 从保存在另一列中的列中选择

mysql - 如何将 yml 文件导入 MySQL 数据库?

sql - oracle中的子选择

Java 时间到 SQL

Java 6 : how to drag/move a line?