我有一个名为BooksUser的表。我有两个date
字段returned_on_date
和return_by_date
。我可以在mysql中将以下计算作为虚拟字段status
进行。
if(empty(BooksUser['returned_on_date'])){
if(date('Y-m-d') > BooksUser['return_by_date']){
BooksUser['status'] = 1;
} else {
BooksUser['status'] = 2;
}
} else {
if(BooksUser['returned_on_date'] > BooksUser['return_by_date']) {
BooksUser['status'] = 3;
} else {
BooksUser['status'] = 4;
}
}
答案 0 :(得分:0)
select
IF(isnull(returned_on_date),
IF(CURDATE() < return_by_date, 1, 2),
IF(returned_on_date > return_by_date, 3, 4)
) as status
from books_users
基本上这就是发生的事情。正如评论所建议的IF
是我必须使用的,在我的案例中,技巧是使用嵌套的IF。
IF函数需要3个参数条件,真实的结果,错误的结果。