一開始是通過 member_id 來查詢數(shù)據(jù)的,另一張表里記錄著用戶的信息。
一天 用戶表的這條信息丟失了。生成的一個 openID 一樣但是主鍵不一樣的數(shù)據(jù)。
但是下圖的數(shù)據(jù)還是這樣寫入的 我現(xiàn)在如何通過 mp_id 和 openID 還查詢這個用戶的正常數(shù)據(jù)呢。上圖看到的數(shù)據(jù) openID 一欄都有部分數(shù)據(jù)是缺失的
現(xiàn)在**只想通過 mp_id 和 openID 查詢圖中全部數(shù)據(jù)** 該如何完成這個sql 查詢呢
求大神寫思路SELECT * FROM `score_log` WHERE `mp_id` = 'gh_1d3037ae656c' AND `openid` = 'o5NHFsy-PUHxY7G_h_S8UscpKVg8'
2 回答

侃侃爾雅
TA貢獻1801條經(jīng)驗 獲得超16個贊
如果 openid 只是空字符串
SELECT * FROM `score_log` WHERE `mp_id` = 'gh_1d3037ae656c' AND `openid` in ('o5NHFsy-PUHxY7G_h_S8UscpKVg8', '');
如果 openid 只是 null
SELECT * FROM `score_log` WHERE `mp_id` = 'gh_1d3037ae656c' AND (`openid` = 'o5NHFsy-PUHxY7G_h_S8UscpKVg8' OR openid is null);

侃侃無極
TA貢獻2051條經(jīng)驗 獲得超10個贊
如你所說需要 mp_id 和 openID 作為條件查詢,那么應(yīng)當任意一個條件不能滿足記錄的唯一性,否則只需要滿足唯一性的條件即可,那么數(shù)據(jù)缺失即無解,得到的記錄只能少于應(yīng)有記錄。換個角度,弄清業(yè)務(wù)規(guī)則,是否能補全缺失數(shù)據(jù),或者以其他作為能唯一決定用戶記錄的條件來查詢。
添加回答
舉報
0/150
提交
取消