0

现在,我的网站中有一条 sql 语句,用于检查我的数据库中的活动值是否为 NULL,以便用户登录。我实现了一种辅助激活方法,现在我有两个活动字段:active 和 active2。下面是我目前有效的 sql 语句,但是我现在需要它来反映两个字段。

$q = "SELECT * FROM users WHERE (email='$e' AND pass=SHA1('$p')) AND active IS NULL";

我尝试了 CONCAT,但我认为这不是正确的语法,因为它似乎不起作用。

$q = "SELECT * FROM users WHERE (email='$e' AND pass=SHA1('$p')) AND CONCAT(active, active2) IS NULL";

我需要检查我的 sql 语句中的 active 和 active2 字段以查看它们是否为空,如果它们为空则用户可以登录,现在它只检查第一个活动字段。感谢任何帮助。

4

2 回答 2

0

我认为应该是:

$q = "SELECT * FROM users WHERE (email='$e' AND pass=SHA1('$p')) AND (active IS null) AND (active2 IS NULL)";

于 2013-11-04T19:31:33.103 回答
0

你也可以使用COALESCE()

$q = "SELECT * FROM users WHERE (email='$e' AND pass=SHA1('$p')) AND COALESCE(active, active2, NULL) IS NULL";
于 2013-11-04T19:33:07.637 回答