name | latitude | longitude
---------------------------
A | 20.123 | 114.8965
B | 1.987 | -0.39123
对于给定的输入(myinput
),例如20.1
我想知道,如果它放在桌子上已经存在使用SUBSTRING而圆。
这意味着,我需要采取的latitude
(或longitude
,但我们只注重latitude
为了简化问题)表的每一行,获得第一位小数和圆形它的上限值和比较到input
。
这样的事情,这当然是不工作:
SELECT *
FROM mytable
WHERE substring(ROUND(latitude, 1), 1, 3) = myinput
/\ /\
the problem with this values are that the length is variable (20.123, 114, 8965, -0.39, etc.)
我在这里做的是:
- 采取的纬度:
20.123
- 围着它,到上值:
20.123
- 修剪到第一位小数:
20.1
- 将其与输入相比较:
20.1 = 20.1
。好!
任何想法如何,我可以archieve我的目标是什么?也许不会使用SUBSTRING
并使用正则表达式来获得后点数?我不在乎,如果我不得不使用任何其他功能。
在此先感谢。
它不清楚,你为什么要使用'substring' –
我不wan't使用'substring',我试图用子做归档文件。我不在乎,如果我不得不使用任何其他策略。 –
“将其舍入到上限值”?这是什么意思? –