在mySQL中的给定结果下面的表格中选择最接近的数字

时间:2017-10-24 08:35:56

标签: mysql

我正在开发一个预订系统,其中包含一系列基于住宿时间(即预订的住宿天数)的房价,我需要使用这些数据来检索预订住宿的准确费用,以便呈现给客户。

但是,我的客户的费率为"两周+"和"四周+"这意味着任何超过两周,但低于四周以及四周以上的任何事情等。但是,我的检索费率的声明如下:

grid.ls(getGrob(elem, "strip.text.x.text", grep=TRUE))$name

其中SELECT id, display_name FROM rate_type WHERE nights = ' . $nights; 是用户在前端选择的夜数。但是我遇到了一个问题,因为使用这种方法并不总是匹配。数据库条目如下:

$nights

因此,我的问题是,如果用户在15至27晚之间预订任何东西,则无法匹配,因此无法获得费率。如果用户在15到27晚之间预订,我会想要使用14晚的房价(与28晚的房价相反),所以我的问题是,我怎样才能写出一个声明所需的夜晚用户并在数据库中找到下一个最晚的夜晚以获取相关费率?

1 个答案:

答案 0 :(得分:3)

你可以这样做:

WHERE nights <= <your_user_input> ORDER BY nights DESC LIMIT 1