gpt4 book ai didi

sql - 此 mySQL 更新查询未生成任何更改的行。为什么?

转载 作者:行者123 更新时间:2023-11-29 04:57:42 25 4
gpt4 key购买 nike

今天早上我很茫然。也许我的咖啡被下药了?简单的问题 - 将现有 ID 放入此临时表中以进行导出。

像这样的表格:

table 上人

+--------+-----------------------+
| id | email |
+--------+-----------------------+
| 142755 | xxxxxxx@xxxxxxxxx.com |
+--------+-----------------------+

表 no_dma

+--------+------------------------+
| person | email |
+--------+------------------------+
| 0 | xxxxxxx@xxxxxxxxx.com |
+--------+------------------------+

查询:

UPDATE 
person, no_dma
SET no_dma.person = person.id
WHERE person.email = no_dma.email;

我已经验证了两个表中至少存在一些匹配的电子邮件地址,但是更新产生了

Query OK, 0 rows affected (9.31 sec)
Rows matched: 0 Changed: 0 Warnings: 0

很明显,我今天有一点点 dain bramamge。

帮帮我?我做错了什么?

//编辑

根据下面的评论,我提出了这些问题:

mysql> select person, email from no_dma limit 0,1;
+--------+------------------------+
| person | email |
+--------+------------------------+
| 0 | tom_r1989@xxxxxxx.com
+--------+------------------------+
1 row in set (0.00 sec)

mysql> select email from no_dma where email = 'tom_r1989@xxxxxxx.com';
Empty set (0.00 sec)

mysql> select email from no_dma where TRIM(email) = 'tom_r1989@xxxxxxx.com';
Empty set (0.46 sec)

两个表都将电子邮件字段存储为 varchar,排序规则设置为 latin1_swedish_ci。

这个查询,WTH?

mysql> SELECT CONCAT('"',email,'"') from no_dma limit 0,3;
+-----------------------+
| CONCAT('"',email,'"') |
+-----------------------+
" |amjor308@xxx.com
" |utt@xxx.com
" |00000000@xxx.com
+-----------------------+


mysql> SELECT email from no_dma limit 0,3;
+--------------------+
| email |
+--------------------+
|+amjor308@xxx.com
|mutt@xxx.com
|000000000@xxx.com
+--------------------+

那里发生了什么?看起来像换行符,但我认为 TRIM() 处理了那些?

mysql> SELECT TRIM(email) from no_dma limit 0,3;
+--------------------+
| TRIM(email) |
+--------------------+
|+amjor308@aol.com
|mutt@excite.com
|000000000@aol.com
+--------------------+
3 rows in set (0.00 sec)

更新:发现问题导入是在 Windows 生成的 CSV 上完成的,但 mysqlimport 被赋予了 arg

--lines-terminated-by='\n'

重新导入的数据工作正常。很抱歉浪费了大家的时间。

最佳答案

表 no_dma 有尾随空格。数据不一样。

编辑:

  • 设置 ANSI_PADDING?
  • 真的是空格吗: 是ASCII 160
  • 每个值的哈希值或校验和揭示了什么?
  • 字符串长度是多少?

关于sql - 此 mySQL 更新查询未生成任何更改的行。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4971103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com