Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果mysql中的条件为null_Php_Mysql - Fatal编程技术网

Php 如果mysql中的条件为null

Php 如果mysql中的条件为null,php,mysql,Php,Mysql,我在查询中使用了“if条件”,但它不适用于ISNULL。它的给定值也不一样 我的问题是 SELECT *,IF(posted_job_id IS NULL,0,1) as pj FROM appliedjob id|posted_job_id|pj 1 | | 1 2 | 8 | 1 3 | 5 | 1 1 | | 1 2 | 4 | 1 它也显示所有非空值为1。case没问题

我在查询中使用了“if条件”,但它不适用于
ISNULL
。它的给定值也不一样

我的问题是

 SELECT *,IF(posted_job_id IS NULL,0,1)  as pj FROM appliedjob 


id|posted_job_id|pj
1 |             | 1
2 |  8          | 1
3 |  5          | 1
1 |             | 1
2 |  4          | 1

它也显示所有非空值为1。case没问题,我的意思是当我使用case时。

如果在null时需要0,在notnull时需要原始值,请尝试以下方法

SELECT *, IF(posted_job_id IS NULL, 0, posted_job_id) AS pj 
FROM appliedjob 

您只能在SQL中检查已发布的作业id>0

SELECT *,IF(posted_job_id > 0, 1, 0)  as pj FROM appliedjob 

我已经测试了这个查询,它现在可以工作了

SELECT posted_job_id, IF(posted_job_id > 0, posted_job_id, 0)
AS pj FROM appliedjob
MySQL IF()接受三个表达式,如果第一个表达式为true、非零和非NULL,则返回第二个表达式。否则返回第三个表达式


假设第一个表达式是
if
condition如果为真,它将返回第二个表达式,这是
if
condition的主体,否则它将返回第三个表达式,就像
else

它在我看来不是空的,它看起来是“空的”,所以请尝试,
if(长度(发布的作业id)>0,1,0)
I'm user2727841检查我的查询它现在工作感谢它也不使用null,也不使用posted\u job\u id>0。这背后的原因是什么?检查这个检查我(@user2727841)的更新答案…谢谢你能告诉我为什么ISNULL不工作吗?posted_job_id>0正在工作时。MySQL为NULL运算符测试值是否为NULL。如果满足,则返回1,否则返回0。在我选中的条件下,posted_job_id大于0打印数据库值,如8、5和4,但如果不大于0,则打印0。