update go_member set username = replace(username,'非漢字','');
我要替換資料庫中名字,只要名字中不是數字字母漢字的(就是去掉特殊字元),都替換掉。該如何做? ? ?
資料庫是MySQL
update go_member set username = replace(username,'非漢字','');
我要替換資料庫中名字,只要名字中不是數字字母漢字的(就是去掉特殊字元),都替換掉。該如何做? ? ?
資料庫是MySQL
mysql 正規匹配,試試我本地測試是好的update go_member set username= '' where username not REGEXP '[[:alpha:]]|[0-9]|[a-z,A-Z]'
----謝邀----
:笨方法,先把所有資料查出來,再對結果進行過濾(過濾非漢字的)資料記錄這些資料的ID,然後update
思路2(推薦)
:使用sql的正規表示式,SQL中也是可以使用正規表示式的。具體還要看你使用什麼資料庫,具體資料庫又有不同的文法。這個具體就看你的情況了,自己Google吧
比如Oracle有這些:regexp_like,regexp_replace,regexp_substr,regexp_instr四個正規表示式函數.例子:select
n$');可以找出ename中以a開頭以n結尾的行
根據以上解決方案,你可以自己摸索去google吧。 。 。 。希望對你有幫助。
如果用PHP的話,最好在PHP中用正規來匹配、過濾結果,雖然如樓上所說,MySQL支援正規查詢語句,但是效率會更低。
中文的正規是:/([u4e00-u9fa5])/u
,那麼過濾非中文的正則就是:
提供個php utf-8下的漢字正規吧
<code><?php $str = "one中国你好two"; $preg = "/\p{Han}+/u"; $result = preg_replace($preg, '', $str); var_dump($result);</code>