簡體   English   中英

Mysql TRIM/RTRIM/REPLACE 無法從 email 列中刪除尾隨空格

[英]Mysql TRIM/RTRIM/REPLACE doesn't work to remove trailing spaces from an email column

我有這個 insert select 語句,將數據從員工批量添加到員工表中:

INSERT INTO employee (tr_email) 
SELECT TRIM(eb.tr_email)
  FROM employee_bulkadd_staging eb
  ON DUPLICATE KEY UPDATE     
  tr_email=(SELECT IF(eb.tr_email = '' or eb.tr_email IS NULL, employee.tr_email,TRIM(eb.tr_email)));

即使我將其更改為 RTRIM 或 REPLACE(eb.tr_email, ' ', '') 以將空格替換為空,它仍然不會修改要插入的數據。 我無法登錄,因為我的后端應用程序在 email 地址末尾檢測到這些尾隨空格。

帶有空格的示例 email 值如下所示,突出顯示以顯示空格:

在此處輸入圖像描述

來自源表的email地址列,數據類型為varchar(100) utf8_general_ci

而目標表 email 列是varchar(100) latin1_swedish_ci latin1_swedish_ci

我正在使用 MySQL 5. 感謝您的幫助。

我認為由於文本中的 CHAR(10),您正面臨此問題。 你能嘗試刪除它嗎 -

REPLACE(eb.tr_email, CHAR(10), '')

我已經對您的數據進行了編碼,但無法重現空格問題。
回車符或換行符是否有問題:如 Ankit 所建議的 char(11) 和/或 char(13)? 我添加了標記<>以使空白字符的位置更清楚。

 CREATE TABLE employee ( id int not null auto_increment primary key, tr_email varchar(100) collate latin1_swedish_ci ); CREATE TABLE employee_bulkadd_staging( id int not null auto_increment primary key, tr_email varchar(100) collate utf8_general_ci );
 insert into employee_bulkadd_staging (tr_email) values ('name@domain.com ');
 insert into employee (tr_email) select trim(REPLACE(tr_email,' ','')) from employee_bulkadd_staging
 INSERT INTO employee (tr_email) SELECT TRIM(eb.tr_email) FROM employee_bulkadd_staging eb ON DUPLICATE KEY UPDATE tr_email=(SELECT IF(eb.tr_email = '' or eb.tr_email IS NULL, employee.tr_email,TRIM(eb.tr_email)))
 select concat('<',tr_email,'>' ), REPLACE(concat('<',tr_email,'>' ), ' ', '')r from employee_bulkadd_staging eb
 連接('<',tr_email,'>')|  r:------------------------ |:---------------- <名稱@域名.com <br>> |  <名稱@域.com>
 select id,concat('<',tr_email,'>') ebs from employee_bulkadd_staging; select id, concat('<',tr_email,'>' ) emp from employee;
 編號 |  ebs -: |:------------------------ 1 |  <name@domain.com <br>> ID |  emp -: |:------------------------ 1 |  <name@domain.com> 2 |  <名稱@域.com <br>>

db<> 在這里擺弄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM