所以我列出我的列爲10, 20, 30, 40, 50
,並希望mySQL在兩個選定範圍之間選擇和舍入數字。因此,對於查詢BETWEEN 11 AND 32
,我希望它包括10
和40
之間的數據。MySQL選擇數據之間的範圍
就這樣,僅僅使用BETWEEN 11 AND 32
將只能得到20-30
之間列出的值。舍入到最近的10也不能緩解這個問題。
所以我列出我的列爲10, 20, 30, 40, 50
,並希望mySQL在兩個選定範圍之間選擇和舍入數字。因此,對於查詢BETWEEN 11 AND 32
,我希望它包括10
和40
之間的數據。MySQL選擇數據之間的範圍
就這樣,僅僅使用BETWEEN 11 AND 32
將只能得到20-30
之間列出的值。舍入到最近的10也不能緩解這個問題。
嘗試
BETWEEN (FLOOR(lower/10)*10) AND (CEIL(upper/10)*10)
與下限和上限像11和32是整數,這將導致
(FLOOR(11/10)*10) => (FLOOR(1.1)*10) => 1*10 => 10
(CEIL(32/10)*10) => (CEIL(3.2)*10) => 4*10 => 40
x BETWEEN y AND z
是(y <= x) AND (x <= z)
的功能等同物。如果您想要在指定範圍外的記錄,則必須擴大範圍,或將超出範圍的值修改爲IN範圍。
聽起來像是你想'FLOOR()'您分鐘和'CEIL ()'在你的最大值上。在mysql中查看這些函數,看看它們是否有幫助。你應該能夠在你的 – ODelibalta
之間'FLOOR(11)'和'CEIL(32)'不能,你不能。 floor/ceil向上/向下整數.'floor(11)'** IS **'11' –
術語「我希望包含10到40之間的數據」在數學上是模糊的。您可能對開放區間感興趣] 10,40 [或封閉的區域[10,40](包括或不包括10和40),或者只包括較低的[10,40 [或上邊界] 10,40] 。另外我假設你列出你的行,而不是你的列? – ikrabbe