0

私は次のMySQLクエリを持っています:

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

変数$tidは NULL の可能性がありますが、'0' として解釈する必要があります。これを mysql-query で直接行うことは可能ですか、またはクエリを実行する前にこのような if-clause を使用する必要がありますか?

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

ありがとう!

4

5 に答える 5

1

COALESCE(id, 0)mysqlではあなたの友達です:)

詳細はこちら

于 2012-06-02T11:53:09.283 に答える
1

この条件を使用します:

"WHERE `tid` = ".($tid==null?0:$tid)."
于 2012-06-02T11:56:29.257 に答える
0

または:

$sql = "SELECT `eid` FROM `"._ST_EVENT."` WHERE `tid` = ".(!$tid ? 0 : $tid)." AND DATE(`zeitpunkt`) >= CURDATE() ORDER BY `zeitpunkt` ASC;";
于 2012-06-02T11:56:18.443 に答える
0

希望しないANSI SQL場合は、mysqlを使用できますIFNULL(id, 0)

于 2012-06-02T11:57:41.170 に答える
0

クエリで使用ifnullします。

$sql = "SELECT `eid` FROM `"._ST_EVENT."` WHERE `tid` = ifnull(".$tid.",0) AND DATE(`zeitpunkt`) >= CURDATE() ORDER BY `zeitpunkt` ASC;";
于 2012-06-02T11:58:52.670 に答える