![](/img/trans.png)
[英]Trimming both 0 and trailing/leading spaces doesn't give results - MySQL
[英]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.