Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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
在“中返回null或空字符串”;在第条中;mysql-php_Php_Mysql - Fatal编程技术网

在“中返回null或空字符串”;在第条中;mysql-php

在“中返回null或空字符串”;在第条中;mysql-php,php,mysql,Php,Mysql,我有一个疑问: SELECT * from tbl WHERE id = 1 AND option IN (1,2,3) 表: +-------+---------+-------+ | id | option | votes | +-------+---------+-------+ | 1 | 1 | 100 | | 1 | 2 | 150 | +-------+---------+-------+ 由于表中还不存在选项3,我希望

我有一个疑问:

SELECT * from tbl WHERE id = 1 AND option IN (1,2,3) 
表:

+-------+---------+-------+
| id    | option  | votes |
+-------+---------+-------+
|   1   |    1    |  100  |
|   1   |    2    |  150  |
+-------+---------+-------+
由于表中还不存在选项3,我希望它返回null/空字符串,这样我就可以在php代码中将“投票”设置为0


目前它只给我预期的选项1和2行。

如果查询没有返回给定选项的任何数据,可以在PHP中执行。中的
所做的是将您提供的任何id与数据库中的id进行匹配。
中的
中的所有id不一定都必须在数据库中。把它想象成一个
语句。如果你需要额外的选项行,你必须从PHP代码中执行,因为你得到的是1和2的行,如果你没有3,在PHP中将投票权分配给0。如果@ShaunakShukla可能重复,我尝试做的是在DB中找不到该选项时向结果数组插入空元素,然后循环遍历结果数组,在php中将空值/null设置为0。我不知道我是否做得对,我会尝试用动态生成的选项来实现它。谢谢你的帮助
SELECT * from tbl t1
RIGHT JOIN 
(SELECT 1 AS opt UNION ALL
 SELECT 2 AS opt UNION ALL
 SELECT 3 AS opt UNION ALL
) t2
ON t1.option = t2.opt
WHERE t1.id = 1