2011-02-14 95 views
16

除去不需要的角色,我想从列删除字符'

列名:

asdsdfgdfg

dfgwerwerwer

,并希望将其替换为空格

列名称:

ASDS dfgdfg

dfgwer werwer

+0

其实它的列数据 – 2011-02-14 10:56:06

+0

我想用空间替换那个字符使用更新查询 – 2011-02-14 11:10:16

+1

More字符通常不是实际在您的数据库中。它只是意味着您的软件使用指定的字符集,在该字符集中遇到无法识别的字节序列,跳过处理并向您返回一个 字符。 – 2014-05-06 21:31:02

回答

32

这是一个Unicode replacement character。如果此字符出现在您的表中,则可能是您使用错误的字符集发出查询。您应该检查列字符集,并且还应该检查用于发出查询的连接的字符集。如果用于读取和记录数据的连接之间的连接字符集有所不同,或者用于访问数据的应用程序/脚本之间的期望字符集有所不同,那么这将解释这些字符的存在。

如果你只是想用空格来代替它:

UPDATE myTable SET myColumn = REPLACE(myColumn, '�', ' ') 
+0

只是一个注意,请注意,有时你可能必须首先逃避你想要替换的字符“\”:`更新myTable SET myColumn = REPLACE(myColumn,'\\','')` – Ray 2012-12-12 16:51:16

0

执行下面的查询来设置字符集 SET字符集“UTF-8”;

0

执行下面的查询来设置字符集

SET CHARSET 'utf8'; 
set names 'utf8' 
7

这个SQL替换下面的字符

~ ! @ # $ %^& * () _ + 
` - = 
{ } | 
[ ] \ 
: " 
; ' 

< > ? 
, . 

SELECT note as note_original, 

    REPLACE(
     REPLACE(
      REPLACE(
       REPLACE(
        REPLACE(
         REPLACE(
          REPLACE(
           REPLACE(
            REPLACE(
             REPLACE(
              REPLACE(
               REPLACE(
                REPLACE(
                 REPLACE(
                  REPLACE(
                   REPLACE(
                    REPLACE(
                     REPLACE(
                      REPLACE(
                       REPLACE(
                        REPLACE(
                         REPLACE(
                          REPLACE(
                           REPLACE(
                            REPLACE(
                             REPLACE(
                              REPLACE(
                               REPLACE(
                                REPLACE(
                                 REPLACE(
                                  REPLACE(
                                   REPLACE(
                                    REPLACE(note, '"', ''), 
                                   '.', ''), 
                                  '?', ''), 
                                 '`', ''), 
                                '<', ''), 
                               '=', ''), 
                              '{', ''), 
                             '}', ''), 
                            '[', ''), 
                           ']', ''), 
                          '|', ''), 
                         '\'', ''), 
                        ':', ''), 
                       ';', ''), 
                      '~', ''), 
                     '!', ''), 
                    '@', ''), 
                   '#', ''), 
                  '$', ''), 
                 '%', ''), 
                '^', ''), 
               '&', ''), 
              '*', ''), 
             '_', ''), 
            '+', ''), 
           ',', ''), 
          '/', ''), 
         '(', ''), 
        ')', ''), 
       '-', ''), 
      '>', ''), 
     ' ', '-'), 
    '--', '-') as note_changed FROM invheader 
0

你可以试试这个了多列

UPDATE myTable SET myColumn1 = REPLACE(myColumn1,' ',''),myColumn2 = REPLACE(myColumn2,' ',''),myColumn3 = REPLACE(myColumn3,' ',''),... ;