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',我試圖用子做歸檔文件。我不在乎,如果我不得不使用任何其他策略。 –
「將其舍入到上限值」?這是什麼意思? –