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
リーリー
小文字の p は中国語の文字に一致し、大文字の P は中国語以外の文字に一致します