MySQL - 将NULL解释为0

时间:2012-06-02 11:50:33

标签: mysql

我有以下MySQL-Query:

$sql = "SELECT `eid` FROM `"._ST_EVENT."` WHERE `tid` = ".$tid." AND DATE(`zeitpunkt`) >= CURDATE() ORDER BY `zeitpunkt` ASC;";

变量$tid可以为NULL,但应解释为“0”。是否可以直接在mysql查询中执行此操作,或者在执行查询之前是否应该使用这样的if子句?

if ($tid == NULL) {
    $tid = 0;
}

谢谢!

5 个答案:

答案 0 :(得分:1)

mysql中的

COALESCE(id, 0)是你的朋友:)

了解更多here

答案 1 :(得分:1)

使用此条件:

"WHERE `tid` = ".($tid==null?0:$tid)."

答案 2 :(得分:0)

或者:

$sql = "SELECT `eid` FROM `"._ST_EVENT."` WHERE `tid` = ".(!$tid ? 0 : $tid)." AND DATE(`zeitpunkt`) >= CURDATE() ORDER BY `zeitpunkt` ASC;";

答案 3 :(得分:0)

如果您不喜欢ANSI SQL,可以使用mysql IFNULL(id, 0)

答案 4 :(得分:0)

在查询中使用ifnull

$sql = "SELECT `eid` FROM `"._ST_EVENT."` WHERE `tid` = ifnull(".$tid.",0) AND DATE(`zeitpunkt`) >= CURDATE() ORDER BY `zeitpunkt` ASC;";