在“中返回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