Swe*_*ter 12 mysql null select
userPosts.value可以包含两个值之一:0或1.
我正在将userPosts加入我的帖子表.
我想从我的Posts表中获取userPosts.value = 0的所有帖子以及根本没有任何userPosts.value的所有帖子(因此,NULL).
以下只给我发布值= 0但没有NULL的帖子:
SELECT * FROM $wpdb->posts
LEFT JOIN userPosts ON ($wpdb->posts.ID = userPosts.postID)
WHERE userPosts.value != 1
ORDER BY $wpdb->posts.post_date DESC
Run Code Online (Sandbox Code Playgroud)
以下只获取值为NULL的帖子:
SELECT * FROM $wpdb->posts
LEFT JOIN userPosts ON ($wpdb->posts.ID = userPosts.postID)
WHERE userPosts.value IS NULL
ORDER BY $wpdb->posts.post_date DESC
Run Code Online (Sandbox Code Playgroud)
但这根本不会产生任何结果:
SELECT * FROM $wpdb->posts
LEFT JOIN userPosts ON ($wpdb->posts.ID = userPosts.postID)
WHERE userPosts.value = 0
AND userPosts.value IS NULL
ORDER BY $wpdb->posts.post_date DESC
Run Code Online (Sandbox Code Playgroud)
这确实得到了我的帖子值为0以及NULL,但它重复我的所有空白帖子三次!
SELECT * FROM $wpdb->posts
LEFT JOIN userPosts ON ($wpdb->posts.ID = userPosts.postID)
WHERE userPosts.value = 0
OR userPosts.value IS NULL
ORDER BY $wpdb->posts.post_date DESC
Run Code Online (Sandbox Code Playgroud)
那么我做错了什么?
小智 21
尝试在OR
条件上使用parenthasis(userContests.value = 0 OR userContests.value IS NULL)
SELECT * FROM $wpdb->posts
LEFT JOIN userPosts ON ($wpdb->posts.ID = userPosts.postID)
WHERE (userContests.value = 0
OR userContests.value IS NULL)
ORDER BY $wpdb->posts.post_date DESC
Run Code Online (Sandbox Code Playgroud)