文章详情页
mysql - 我用SQL语句 更新 行的时候,发现全部 中文都被清空了,请问怎么解决?
浏览:55日期: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 '[(联通)(移动)(电信)]';
执行一下,看看输出匹配的都是什么数据最好把 结果发出来,这样才能分析啊
排行榜
![angular.js - 如何通俗易懂的解释“依赖注入”?](http://www.haobala.com/attached/image/news/202311/101247a4a4.png)