UPDATE shop SET desn2 = "" WHERE desn2 REGEXP "[(联通)(移动)(电信)]";
我用这句的时候,发现中文都被清空了,而一些只有数字或者英语组成的单元格却没有被清空,请问怎么办?
我试了试,只要使用了中括号,就会莫名其妙被匹配:我觉得应该是他把中文,分解成了 编码 ,然后用编码去匹配的你自己写个试试.
SELECT '大家好' REGEXP '[不存在]';
这个应该不存在,但是她就是存在了!
闭关修行中......
這只是我的理解。至於正確與否不保證。 這是mysql正規的"[]"說明:
[ ] 符合任何單一字元。
[123]定義一組字符,意思是匹配1或2或3.
那麼,我理解的字元保存方式是ascii碼保存的,這也好理解為什麼會有字元集的概念。
SELECT ASCII('大家好'),ASCII('不存在')==>資料結果是:229 228
那這就好理解為什麼:select 229 REGEXP '[228]'==>1
select * from shop WHERE desn2 REGEXP "[(聯通)(行動)(電信)]";
執行一下,看看輸出匹配的都是什麼數據最好把 結果發出來,這樣才能分析啊
這只是我的理解。至於正確與否不保證。
這是mysql正規的"[]"說明:
[ ] 符合任何單一字元。
[123]定義一組字符,意思是匹配1或2或3.
那麼,我理解的字元保存方式是ascii碼保存的,這也好理解為什麼會有字元集的概念。
SELECT ASCII('大家好'),ASCII('不存在')
==>
資料結果是:229 228
那這就好理解為什麼:select 229 REGEXP '[228]'==>1
select * from shop WHERE desn2 REGEXP "[(聯通)(行動)(電信)]";
執行一下,看看輸出匹配的都是什麼數據
最好把 結果發出來,這樣才能分析啊