MariaDB更新Twitter链接报错1292:截断错误DOUBLE值求助
修复MariaDB中user表Twitter残缺链接的SQL语句问题
嘿,这个错误我太熟了——你用+来拼接字符串的操作,在MariaDB里会被当成数值加法运算,而不是字符串合并,所以它尝试把https://twitter.com/转成DOUBLE类型失败,就抛出了1292截断错误。
给你修正后的正确SQL语句,用MariaDB标准的字符串拼接函数CONCAT()来处理:
UPDATE `user` AS u SET u.link_twitter = CONCAT('https://twitter.com/', u.link_twitter) WHERE u.link_twitter NOT LIKE 'https://twitter.com/%' AND u.link_twitter IS NOT NULL;
几点补充说明:
CONCAT()是MariaDB/MySQL里专门用于字符串拼接的函数,它会正确处理字符串类型的参数,不会触发数值转换逻辑。- 我额外加了
AND u.link_twitter IS NOT NULL的条件,防止字段为空时,拼接出https://twitter.com/NULL这种无效链接。 - 保险起见,建议你先执行下面的SELECT语句,预览一下要更新的内容,确认逻辑没问题再执行UPDATE:
SELECT u.link_twitter, CONCAT('https://twitter.com/', u.link_twitter) AS corrected_link FROM `user` AS u WHERE u.link_twitter NOT LIKE 'https://twitter.com/%' AND u.link_twitter IS NOT NULL;
内容的提问来源于stack exchange,提问作者Vojta Mareš
相关产品推荐
相关产品推荐

