如题:mysql 如何写语句替换某字段中 所有汉字,只剩下英文字母和符号。  编码是UTF-8

解决方案 »

  1.   

    示例:
    SELECT ff,ID,姓名,GROUP_CONCAT(NEWXM ORDER BY NEWID SEPARATOR'') FROM (
    SELECT A.*,B.id AS NEWID,
    IF(MID(姓名,B.id,1) REGEXP '[^ -~]' =1,
    REPLACE(MID(姓名,B.id,1),MID(姓名,B.id,1),''),MID(姓名,B.id,1)) AS NEWXM
     FROM TRY A LEFT JOIN LSB1 B ON CHAR_LENGTH(TRIM(A.姓名))>=B.id ORDER BY A.ID,NEWID
    ) C  GROUP BY   ff,ID,姓名   ;LSB1只有1个ID字段,1-100000,取决于字符长度
    在MYSQL5下测试通过
      

  2.   

    TRY为工作表,有FF,ID,姓名三个字段,其中姓名为中英文混合
      

  3.   

    MYSQL暂时不支持正则替换。
    用其他正则替换工具搞好了,直接导入就可以了!
      

  4.   

    写语句替换似乎够呛,可以直接把里边的binary值中的>127的所有字节都虑掉即可。看看有没有此类方法。不行的话,只能程序过滤,再更新
      

  5.   

    本帖最后由 yueliangdao0608 于 2008-09-27 10:31:42 编辑