我正在使用
SELECT
在下面给出的查询中查询为子查询。。。
SELECT COUNT (`Notification`.`id`) AS `count`
FROM `listaren_mercury_live`.`notifications` AS `Notification`
WHERE NOT FIND_IN_SET(`Notification`.`id`,(SELECT read_ids FROM read_notifications WHERE user_id = 46))
AND((notisfication_for IN("all","India"))
OR(FIND_IN_SET(46,notification_for))
此查询在以下情况下工作正常
SELECT read_ids FROM read_notifications WHERE user_id = userid)
返回结果,如21,22,23,24
但当此查询返回空时。
结果id
0
而不是
3
.用户有3个未读通知;所以结果一定是
3.
问题
当内部select查询返回
12,42
但如果查询返回null,则整个查询的结果将变为0。
查询的预期结果
我得到的结果
我只想知道子查询是否返回空值。然后查询
(Notification.id,(从read\u notifications中选择read\u id,其中user\u id)=46)
结果如下所示
(`Notification`.`id`,(0))
而不是
(`Notification`.`id`,())
所以它会正常工作
请告诉我这方面需要什么改进。
谢谢