ホームページ > バックエンド開発 > PHPチュートリアル > update go_member set username = replace(name,'中国語以外の文字',''); 中国語以外の文字を記述するにはどうすればよいですか?

update go_member set username = replace(name,'中国語以外の文字',''); 中国語以外の文字を記述するにはどうすればよいですか?

WBOY
リリース: 2016-08-04 09:19:45
オリジナル
1328 人が閲覧しました

go_member set username = replace(username,'中国語以外の文字','');を更新します

データベース内の名前を置換したいのですが、名前に数字、文字、または漢字が含まれていない限り (つまり、特殊文字が削除されている場合)、すべての名前が置換されます。どうやってするの? ? ?

データベースはMySQLです

返信内容:

go_member set username = replace(username,'中国語以外の文字','');を更新します

データベース内の名前を置換したいのですが、名前に数字、文字、または漢字が含まれていない限り (つまり、特殊文字が削除されている場合)、すべての名前が置換されます。どうやってするの? ? ?

データベースはMySQLです

mysql の通常のマッチング、ローカル テストを試してみると良いでしょう
update go_member set username= '' where username not REGEXP '[[:alpha:]]|[0-9]|[a-z,A-Z]'

----ご招待ありがとうございます----
アイデア 1 (非推奨): 愚かな方法。最初にすべてのデータを見つけてから、結果をフィルターし (中国語以外の文字をフィルターし)、その ID を記録します。これらのデータを更新してから

アイデア 2 (推奨): SQL で正規表現を使用する 正規表現は SQL でも使用できます。使用するデータベースによって、構文が異なります。これは状況によって異なりますので、Google で調べてください。たとえば、Oracle には regexp_like、regexp_replace、regexp_substr、regexp_instr という 4 つの正規表現関数があります。
select
from emp where regexp_like(ename,'^a[a-z ]
) n$'); ename で a で始まり n で終わる行を見つけることができます 上記の解決策に基づいて、Google にアクセスして自分で解決することができます。 。 。 。お役に立てば幸いです。

PHP を使用する場合は、PHP で正規表現を使用して結果を照合およびフィルタリングするのが最適ですが、前述したように、MySQL は正規のクエリ ステートメントをサポートしていますが、効率は低くなります。

中国語の正規表現は次のとおりです:


/([u4e00-u9fa5])/u,那么过滤非中文的正则就是:/([^u4e00-u9fa5])/u

php utf-8で漢字の規則的なパターンを提供します

リーリー

小文字の p は中国語の文字に一致し、大文字の P は中国語以外の文字に一致します

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート