検索

ホームページ  >  に質問  >  本文

MYSQL VER 8 に保存されている 700 万件のレコードの中から、文字、スペース、ピリオド以外の文字を含むレコードを検索します。

以下の例に示すように、MYSQL DB に特殊文字を主にデータベースの名と姓の列に挿入しました。

<强>1. ➡️バルパイサブ

<强>2. ��������������������������°������������������������� �������������������������������������������������������� ��������������������������������������������������������������������������������������������������������������������������������������������

効果的なケース:

*サウラブ・シュリー

S.シュリー

T.M.アンソニー

チャールズ・バベッジ・シニア*

長さは可変です。すべて大文字と小文字が区別されず、末尾のスペースはありません。連続する 2 つの単語の間にはスペースとピリオド のみが使用できます。

正規表現の投稿を調べ、列とテーブルの照合順序を utfmb4_unicode_ci に変更し、regexp を適用しましたが、うまくいきませんでした。

約 700 万件のレコードを 1 文字でも検索する必要がありました。

リーリー

これは私のコードです:

ああああ

P粉132730839P粉132730839341日前507

全員に返信(1)返信します

  • P粉340980243

    P粉3409802432024-02-26 16:06:27

    これには質問の中で「2」が必要ですが、何か手がかりが得られるかどうかは疑問です:

    ##### ¿ ���������� ã §ã ã ã ã ° ������® ¾ ���������� ¿ ¤ ã §ã ???
    16 進文字列の 1 つについては、次のようになります。
    

    変換 (UNHEX('E0A69DE0A6A8E0A78DE0A69FE0A78120E0A6B8E0A6B0E0A695E0A6BEE0A6B0') utf8mb4 を使用) ジャントゥ・サーカールをプロデュース

    これは必ずしも解決策につながるわけではありませんが、挿入時のエンコードの問題を示唆する可能性があります。

    正規表現の場合は、

    のようなものを検討してください。

    HEX(列) REGEXP '^(..)*[89ABCDEF]'
    これにより、文字列内のバイトに非 Ascii 8 ビット コードが含まれているかどうかが検出されます。 

    これは混合物です:

    CONVERT(UNHEX('53554B444542205341524B4152E0A6AA') USING utf8mb4) --> 'SUKDEB SARKARপ'
    つまり、これは Ascii ですが、末尾にベンガル語の「PA」が付いています。実は、ご覧の「SUKDEB SARKARàè」は文字化けのロゴです。 Mojibake (およびその他の一般的な混乱) については、次を参照してください: 

    UTF-8 文字の問題; 表示されるのは、保存した ではありません

    返事
    0
  • キャンセル返事