我的 SQL 查询一直存在问题,经过各种尝试和研究后,我无法自行解决该问题。
错误:
Warning: #1292 Truncated incorrect DOUBLE value: 'TITLE1_00'
Warning: #1292 Truncated incorrect DOUBLE value: 'TITLE2'
Warning: #1292 Truncated incorrect DOUBLE value: '_00'
我的查询:
SELECT t1.titleid
FROM tmdb t1
LEFT JOIN patch t2
ON t1.titleid = t2.name + '_00'
WHERE t2.name IS NULL
结构:
tmdb: titleid(varchar)(15)
补丁: 名称(varchar15)(15)
我已经尝试过:
name(varchar)(15)
是 name(varchar)(9)
,我已将其更改为 15。
我已经在两个数据库的 phpmyadmin 中运行了查询。
有谁知道为什么会发生这种情况,以及解决方案是什么?
<小时/>该问题被标记为重复。链接帖子中的答案没有回答我的问题,因为这个查询是不同的。正如这篇文章中提到的,我已经做了研究并且已经发现了这篇文章!
最佳答案
+
是数字加法,而不是字符串连接...因此 MySQL 会尝试将您的值转换为数字。由于没有更好的计划,它选择了 DOUBLE 类型(64 位浮点值)。但由于您的字符串不能产生非常令人信服的数字,因此您会收到警告。
字符串连接的正确构造:
ON t1.titleid = CONCAT(t2.name, '_00')
关于mysql - SQL - 截断了不正确的 DOUBLE 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55385169/