2015-07-10 202 views
0

所以我列出我的列爲10, 20, 30, 40, 50,並希望mySQL在兩個選定範圍之間選擇和舍入數字。因此,對於查詢BETWEEN 11 AND 32,我希望它包括1040之間的數據。MySQL選擇數據之間的範圍

就這樣,僅僅使用BETWEEN 11 AND 32將只能得到20-30之間列出的值。舍入到最近的10也不能緩解這個問題。

+1

聽起來像是你想'FLOOR()'您分鐘和'CEIL ()'在你的最大值上。在mysql中查看這些函數,看看它們是否有幫助。你應該能夠在你的 – ODelibalta

+1

之間'FLOOR(11)'和'CEIL(32)'不能,你不能。 floor/ceil向上/向下整數.'floor(11)'** IS **'11' –

+1

術語「我希望包含10到40之間的數據」在數學上是模糊的。您可能對開放區間感興趣] 10,40 [或封閉的區域[10,40](包括或不包括10和40),或者只包括較低的[10,40 [或上邊界] 10,40] 。另外我假設你列出你的行,而不是你的列? – ikrabbe

回答

1

嘗試

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 
0

x BETWEEN y AND z(y <= x) AND (x <= z)的功能等同物。如果您想要在指定範圍外的記錄,則必須擴大範圍,或將超出範圍的值修改爲IN範圍。