mysql表多列排序,得到某个指定值的上一条或下一条,怎么做简单点
一个进销存数据库mysql,表名tblsale,有date和index两个字段来确定一个销售单(一天里面有n单,用index来区分),表里面的记录并不一定是按顺序排放,因为存在后面补加的可能。
单纯的对表里的记录进行排序,可以用order by date, index来排(视情况用升序或降序)。
现在前端传过来一个date和一个index,根据这个特定的date和index来找出它的上一单或者下一单。在PHP里,怎么做简单点呢?
[解决办法]
$sql = "SELECT date, index FROM table WHERE date='dateVal' AND index<'indexVal'
ORDER BY index ASC LIMIT 1";
$result = mysql_query($sql);
$row = mysql_fetch_row($result); //这里是正常情况,既有值
if(empty($row)){ //所谓的极端情况来了。。,既上一个有单日期的最后一单
$sql = "SELECT date, index FROM table WHERE date<'dateVal'
ORDER BY date,index DESC LIMIT 1";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
}
print_r($row);