Php 如果mysql中的条件为null
我在查询中使用了“if条件”,但它不适用于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没问题
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。