table
已将坐标存储在单个value
字段中,如
ID key value
============================
20 coords 38.5931,-90.2226
21 coords 35.7977,-78.6253
22 coords 37.555,-122.2687
23 coords 41.1412,-73.2637
24 coords 47.4716,8.2925
29 coords 42.3626,-71.0843
30 coords -27.6333,-48.65
查询此字段的最佳方式是什么?
基本上我想获得所有条目,其中lat> 38和lng< 0像这样:
SELECT * FROM table WHERE key = 'coords' AND my_lat_value > 38 AND my_lng_value < 0
不幸的是,没有办法将它们拆分为专用字段
答案 0 :(得分:1)
您可以使用SUBSTRING_INDEX
函数来解析字段。
https://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_substring-index
SELECT CAST(SUBSTRING_INDEX(value, ',', 1) AS DECIMAL(10,2)),
CAST(SUBSTRING_INDEX(value, ',', -1) AS DECIMAL(10,2))
FROM MYTABLE