背景:用户表中的name存的是用户名字的拼音和中文。
成都创新互联始终坚持【策划先行,效果至上】的经营理念,通过多达十多年累计超上千家客户的网站建设总结了一套系统有效的推广解决方案,现已广泛运用于各行各业的客户,其中包括:发电机维修等企业,备受客户称扬。
需求:名字去除掉所有的中文字符。
解决方案:
通过CONVERT(name USING ASCII)把中文转换为?,然后再进行替换。
引申问题:怎么判断字段包含中文字符
方法1:查询CONVERT(name USING ASCII)转换为后有?的数据。
方法2:通过正则表达式查询,'[^ -~]'或'e[4-9][0-9a-f]{4}'或者'^(..)*(E[4-9])'表示含中文。
方法3:通过length()和char_length()返回值不同进行查询。
参考链接:
( )
嘿嘿,刚好我知道一种方法,用正则表达式来判断,示例SQL代码如下:select username from user where not(username regexp "[\u0391-\uFFE5]");这个正则表达式就能判断出来了。
SELECT * FROM `tableA` WHERE LENGTH(`row_name`)CHARACTER_LENGTH(`row_name`)
这样就能找出含有中文的记录了;如果查找全英文的记录,长度是相等的,把“”换成“=”就可以了,即
SELECT * FROM `tableA` WHERE LENGTH(`row_name`)=CHARACTER_LENGTH(`row_name`)
在使用mysql时候,某些字段会存储中文字符,或是包含中文字符的串,查询出来的方法是:
SELECT col FROM table WHERE length(col)!=char_length(col)
当字符集为UTF-8,并且字符为中文时,length() 和 char_length() 两个方法返回的结果是不相同的。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款