UTF-8- default
照合を使用するテーブルがあります。REPLACE()はアクセントの影響を受けません(é= e)?
私は、この表の列は、私のようなクエリを実行すると、この値Café Rouge
を持ってcompany
と呼ばれるがあります。それは、文字é =e
を扱うため
select * from company where name ='Cafe Rouge'
それがこの会社を一覧表示しますが、私が使用している場合replaceコマンドでは、é
をe
として扱いません。
ので、
select replace('Café Rouge','e','z')
は'Café Rougz'
すなわち、それはz
でé
を置き換えるものではありません私を与えます。
いずれかの提案が認められるでしょう
この動作を変更できるかどうかはわかりません。REPLACE()はおそらくバイナリ比較を行っています。単純にéを置き換えることはできませんか? –
なぜ「é」を交換する必要がありますか?おそらく、新しい列 'company_normalized'を作成して、アクセントを付けずに値を置いて、正規化されたスペースなどでトリムしてから、正規化されたバリアントを使い、それ以外の場合は本当の会社名を使用してください。 – sasjaq
No :(それは私は現在、大文字と小文字の区別をしていないので、テーブルをバイナリ照合に変更することはできません。バイナリに変更すると、さまざまな場所で変更が行われます。 – Jeets