1

MySqlに、製品の説明を含む列があります。説明に単語の間に1つ以上のスペースが含まれている場合がありますが、それを1つのスペースに変換したいので、次のクエリで見つけました。

 SELECT * FROM `database`.`PRODUCTS` 
 WHERE `PRODUCTS`.`description` LIKE '%  %'

その後、次の方法で修復しました。

 UPDATE `database`.`PRODUCTS` 
 SET `PRODUCTS`.`description` = REPLACE(`PRODUCTS`.`description`,'  ',' ')

ただし、すべてのダブルスペースが削除されるわけではありません。(おそらく)異なるASCIIコードを持つある種の「特別な」スペースがあります-0xA0,0xC2

どうすればSELECTそれを削除できますか?

ありがとう

4

1 に答える 1

0

これらは「特別な」スペースではありません-ASCIIコードではありません-データベースにある場合は、そこに配置するコードにバグがあります。

なぜそれらを単に交換しないのですか?

....
SET PRODUCTS.description = REPLACE(
    REPLACE(
       REPLACE(PRODUCTS.description
             ,CHAR(160),' ')
           , CHAR(194), ' ')
       , '  ', ' ');
于 2013-01-02T00:20:23.683 に答える