短縮版:
コマンドラインmysqlでUnicode文字を検索するために使用できるエスケープシーケンスの種類は?
長いバージョン:
コマンドラインからmysqlでUnicodeシーケンスU + 200Bを含むレコードを列で検索する方法を探しています。どの種類のエスケープを使用するかわかりません。\u200B とx200Bを試してみましたが、_utf8 構文を提案する 1 つのブログをついに見つけました。これにより、コマンドラインで次の文字が生成されます。
select _utf8 x'200B';
今、私は「LIKE」クエリでそれを機能させようとして立ち往生しています。
これにより文字が生成されますが、 % は LIKE 部分に配置すると特別な意味を失うようです:
select _utf8 x'0025200B0025';
私も連結を試みましたが、どちらもうまくいきませんでした:
select concat('%', _utf8 x'200B', '%');
より多くの背景:
幅ゼロの空白文字 (zwsp) を含むデータ、Unicode ポイント U+200B があります。これは通常、出力に zwsp を使用する Web サイトからのコピー/貼り付けが原因です。ほとんどの Unicode 文字では、文字を端末に貼り付ける (またはキーコードで作成する) だけで済みますが、これは目に見えないため、少しやりがいがあります。「%%」シーケンスを生成するファイルを作成し、それを端末にコピーして貼り付けることができます。これは機能しますが、コマンド履歴と端末出力がおかしいままになります。MySQL でこれを行う簡単な方法があると思いますが、これまでのところ不十分です。
前もって感謝します、
-ポール・バーニー