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

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

大佬們遇到過這個問題嗎?mysql 查詢中如何使用正則查詢匹配特定字符?求指導!

大佬們遇到過這個問題嗎?mysql 查詢中如何使用正則查詢匹配特定字符?求指導!

守著星空守著你 2019-09-05 09:02:02
表中一個字段存儲了json格式的數據,如tasks字段,每個人的任務是一個數組,也就是轉換成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"}]現在想通過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 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

如果多個字段的話,用正則很麻煩。要寫很長
SELECT*FROMmytableWHEREmycolumnREGEXP"{[^{}]*(\"task_result\":\"AGREE\"[^{}]*\"userid\":\"V00_1400815737560\"|\"userid\":\"V00_1400815737560\"[^{}]*\"task_result\":\"AGREE\")[^{}]*}";
                            
查看完整回答
反對 回復 2019-09-05
?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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