成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

mysql - 我用SQL語句 更新 行的時(shí)候,發(fā)現(xiàn)全部 中文都被清空了,請(qǐng)問怎么解決?

瀏覽:155日期:2022-06-22 09:19:16

問題描述

UPDATE shop SET desn2 = '' WHERE desn2 REGEXP '[(聯(lián)通)(移動(dòng))(電信)]';

我用這句的時(shí)候,發(fā)現(xiàn)中文都被清空了,而一些只有數(shù)字或者英語組成的單元格卻沒有被清空,請(qǐng)問怎么辦?

我試了試,只要使用了中括號(hào),就會(huì)莫名其妙被匹配:我覺得應(yīng)該是他把中文,分解成了 編碼 ,然后用編碼去匹配的你自己寫個(gè)試試.

SELECT ’大家好’ REGEXP ’[不存在]’;

這個(gè)應(yīng)該不存在,但是她就是存在了!

問題解答

回答1:

這只是我的理解。至于正確與否不做保證。這是mysql正則的'[]'說明:

[ ] 匹配任何單一字符。

[123]定義一組字符,意思是匹配1或2或3.

那么,我理解的字符保存方式是ascii碼保存的,這也好理解為什么會(huì)有字符集的概念。

SELECT ASCII(’大家好’),ASCII(’不存在’)==>數(shù)據(jù)結(jié)果是:229 228

那這就好理解為什么:select 229 REGEXP ’[228]’==>1

回答2:

select * from shop WHERE desn2 REGEXP '[(聯(lián)通)(移動(dòng))(電信)]';

執(zhí)行一下,看看輸出匹配的都是什么數(shù)據(jù)最好把 結(jié)果發(fā)出來,這樣才能分析啊