第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求大佬指點哈!mysql 查詢中如何使用正則查詢匹配特定字符?

求大佬指點哈!mysql 查詢中如何使用正則查詢匹配特定字符?

慕碼人8056858 2019-10-17 09:54:25
表中一個字段存儲了json格式的數(shù)據(jù),如tasks字段,每個人的任務是一個數(shù)組,也就是轉換成json后的{}:[{"create_time":"2019-08-2716:24:51","finish_time":"2019-08-2912:51:47","task_result":"AGREE","task_status":"COMPLETED","taskid":"62047012545","userid":"0637661208752994"},{"create_time":"2019-08-2716:24:43","task_result":"NONE","task_status":"CANCELED","taskid":"62053477946","userid":"V00_1400815737560"}]現(xiàn)在想通過regexp匹配到指定用戶的記錄,比如我想查找其中是否存在(用戶V00_1400815737560已同意):"task_result":"AGREE"和"userid":"V00_1400815737560"的記錄。需要注意的是以上兩個條件必須屬于一個用戶,也就是在一個{}中。請問可以使用mysql的regexp進行這樣的查找嗎?==========================================================目前查詢sql,有一個缺點是可能會匹配到兩個{}里,也就是第一個{}匹配到了"task_status":"RUNNING",第二個{}匹配到了"userid":"%%s":select*fromt_xxwheretasksregexp'"task_status":"RUNNING".+"userid":"%%s"';
查看完整描述

2 回答

?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

如果多個字段的話,用正則很麻煩。要寫很長
SELECT*FROMmytableWHEREmycolumnREGEXP"{[^{}]*(\"task_result\":\"AGREE\"[^{}]*\"userid\":\"V00_1400815737560\"|\"userid\":\"V00_1400815737560\"[^{}]*\"task_result\":\"AGREE\")[^{}]*}";
                            
查看完整回答
反對 回復 2019-10-17
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

如果沒有嵌套json且每一項的值都可以保證不含字符}的話可以把正則里的.+替換成[^}]+。否則會非常麻煩
此外還需要保證json序列化的時候task_status始終在userid前面
                            
查看完整回答
反對 回復 2019-10-17
  • 2 回答
  • 0 關注
  • 275 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號