文章詳情頁
mysql - 我用SQL語句 更新 行的時候,發現全部 中文都被清空了,請問怎么解決?
瀏覽:86日期:2022-06-22 09:19:16
問題描述
UPDATE shop SET desn2 = '' WHERE desn2 REGEXP '[(聯通)(移動)(電信)]';
我用這句的時候,發現中文都被清空了,而一些只有數字或者英語組成的單元格卻沒有被清空,請問怎么辦?
我試了試,只要使用了中括號,就會莫名其妙被匹配:我覺得應該是他把中文,分解成了 編碼 ,然后用編碼去匹配的你自己寫個試試.
SELECT ’大家好’ REGEXP ’[不存在]’;
這個應該不存在,但是她就是存在了!
問題解答
回答1:這只是我的理解。至于正確與否不做保證。這是mysql正則的'[]'說明:
[ ] 匹配任何單一字符。
[123]定義一組字符,意思是匹配1或2或3.
那么,我理解的字符保存方式是ascii碼保存的,這也好理解為什么會有字符集的概念。
SELECT ASCII(’大家好’),ASCII(’不存在’)==>數據結果是:229 228
那這就好理解為什么:select 229 REGEXP ’[228]’==>1
回答2:select * from shop WHERE desn2 REGEXP '[(聯通)(移動)(電信)]';
執行一下,看看輸出匹配的都是什么數據最好把 結果發出來,這樣才能分析啊
排行榜
