![](/img/trans.png)
[英]how to use if else condition in mysql query if attribute is a boolean datatype
[英]How can I use if else in where condition in mysql query?
如何使用if else
条件语句从这two queries
中make one query
// end date Yes inserted....!
$query = "SELECT * FROM event WHERE DATE(end_date) != '1970-01-01' AND
DATE(end_date) < CURDATE()
AND is_deleted=0 ";
// end date not inserted....!
$query2 = "SELECT * FROM event WHERE DATE(end_date) = '1970-01-01' AND
DATE(start_date) < CURDATE()
AND is_deleted=0 ";
这是我的活动表。
+-------------------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| user_id | int(10) unsigned | NO | MUL | NULL | |
| start_date | datetime | NO | MUL | NULL | |
| end_date | datetime | NO | | NULL | |
| created | datetime | NO | | NULL | |
+-------------------------+------------------+------+-----+---------+----------------+
我想要这样的东西。
$query = "SELECT * FROM event WHERE
IF
DATE(end_date) != '1970-01-01'
THEN
AND DATE(end_date) < CURDATE() AND is_deleted=0
ELSE
DATE(end_date) = '1970-01-01'
THEN
AND DATE(start_date) < CURDATE() AND is_deleted=0";
对不起我的英语不好。 我在数据库 MySQL 方面没有太多专业知识。 请指导一下。 如果你还需要什么我可以详细说明。
试试这个查询:
$query = "SELECT * FROM event
WHERE ((DATE(end_date) != '1970-01-01' AND DATE(end_date) < CURDATE()) OR ( DATE(end_date) = '1970-01-01' AND DATE(start_date) < CURDATE() ))
AND is_deleted=0 ";
你想要or
:
select *
from events
where
is_deleted = 0
and (
(date(end_date) != '1970-01-01' and date(end_date) < curdate())
or (date(end_date) = '1970-01-01' and date(start_date) < curdate()
)
以下If
条件解决您的问题
SELECT * FROM event WHERE IF((DATE(end_date) != '1970-01-01'),DATE(end_date) < CURDATE(),DATE(start_date) < CURDATE()) AND is_deleted=0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.