mysql 查询缺失的数据

一开始是通过 member_id 来查询数据的,另一张表里记录着用户的信息。
一天 用户表的这条信息丢失了。生成的一个 openID 一样但是主键不一样的数据。
但是下图的数据还是这样写入的 我现在如何通过 mp_id 和 openID 还查询这个用户的正常数据呢。

图片描述

上图看到的数据 openID 一栏都有部分数据是缺失的 
现在**只想通过 mp_id 和 openID 查询图中全部数据** 该如何完成这个sql 查询呢 
求大神写思路
SELECT * FROM `score_log` WHERE `mp_id` = 'gh_1d3037ae656c' AND `openid` = 'o5NHFsy-PUHxY7G_h_S8UscpKVg8'


慕哥9229398
浏览 1042回答 2
2回答

侃侃尔雅

如果 openid 只是空字符串SELECT * FROM `score_log` WHERE `mp_id` = 'gh_1d3037ae656c' AND `openid` in ('o5NHFsy-PUHxY7G_h_S8UscpKVg8', '');如果 openid 只是 nullSELECT * FROM `score_log` WHERE `mp_id` = 'gh_1d3037ae656c' AND (`openid` = 'o5NHFsy-PUHxY7G_h_S8UscpKVg8' OR openid is null);

侃侃无极

如你所说需要 mp_id 和 openID 作为条件查询,那么应当任意一个条件不能满足记录的唯一性,否则只需要满足唯一性的条件即可,那么数据缺失即无解,得到的记录只能少于应有记录。换个角度,弄清业务规则,是否能补全缺失数据,或者以其他作为能唯一决定用户记录的条件来查询。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python