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
SELECT * FROM table WHERE key = 'coords' AND my_lat_value > 38 AND my_lng_value < 0
不幸的是,没有办法将它们拆分为专用字段
最佳答案
您可以使用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
关于mysql - 查询以逗号分隔的值的字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44906334/