国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

php - update go_member set username = replace(name,'非漢字',''); 非漢字改如何寫(xiě)?
大家講道理
大家講道理 2017-04-11 09:40:08
0
4
785

update go_member set username = replace(username,'非漢字','');

我要替換數(shù)據(jù)庫(kù)中名字,只要名字中不是數(shù)字字母漢字的(就是去掉特殊字符),都替換掉。該如何做???

數(shù)據(jù)庫(kù)是MySQL

大家講道理
大家講道理

光陰似箭催人老,日月如移越少年。

reply all(4)
小葫蘆

mysql 正則匹配,試試我本地測(cè)試是好的
update go_member set username= '' where username not REGEXP '[[:alpha:]]|[0-9]|[a-z,A-Z]'

迷茫

----謝邀----
思路1(不推薦):笨方法,先把所有數(shù)據(jù)查出來(lái),再對(duì)結(jié)果進(jìn)行過(guò)濾(過(guò)濾非漢字的)數(shù)據(jù)記錄這些數(shù)據(jù)的ID,然后update

思路2(推薦):使用sql的正則表達(dá)式,SQL中也是可以使用正則表達(dá)式的。具體還要看你使用什么數(shù)據(jù)庫(kù),具體數(shù)據(jù)庫(kù)又有不同的語(yǔ)法。這個(gè)具體就看你的情況了,自己Google吧
比如Oracle有這些:regexp_like,regexp_replace,regexp_substr,regexp_instr四個(gè)正則表達(dá)式函數(shù).
例子:
select from emp where regexp_like(ename,'^a[a-z]n$');可以查找ename中以a開(kāi)頭以n結(jié)尾的行

根據(jù)以上解決方案,你可以自己摸索去google吧。。。。希望對(duì)你有幫助。

小葫蘆

如果用PHP的話,最好在PHP中用正則來(lái)匹配、過(guò)濾結(jié)果,雖然如樓上所說(shuō),MySQL支持正則查詢(xún)語(yǔ)句,但是效率會(huì)更低。
中文的正則是:/([u4e00-u9fa5])/u,那么過(guò)濾非中文的正則就是:/([^u4e00-u9fa5])/u

伊謝爾倫

提供個(gè)php utf-8下的漢字正則吧

<?php
$str = "one中國(guó)你好two";
$preg = "/\p{Han}+/u";
$result = preg_replace($preg, '', $str);
var_dump($result);

p小寫(xiě)是匹配漢字,P大寫(xiě)是匹配非漢字

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template