A-A+

mysql更新数据提醒Truncated incorrect INTEGER value:错误

2017年10月18日 PHP技术文章 暂无评论 阅读 0 views 次

在mysql中更新数据时出现了Truncated incorrect INTEGER value错误,但仔细查看语句没什么问题,于时又运行还是有错,然后直接利用phpmyadmin生成一条才发现php用多了直接把习惯放在了mysql中.

在网上都找不到什么解决的方法,但是百度到一个个人博客后找到了解决的方法,报错的sql语句,代码如下:

update xx user set qq_password = 'xx_id' & photo = 'img' WHERE email = 'emailx'

然后这个是正确的执行语句,代码如下:

update xx user set qq_password = 'xx_id',photo = 'img' WHERE email = 'emailx'

把&改为,逗号就好了,后来看一老外使用存储过得也碰到这样的问题.

Truncated incorrect INTEGER value:'1|Blondes'

存储过程函数,代码如下:

  1. DELIMITER $$   
  2.    
  3. DROP FUNCTION IF EXISTS `fnObjectTagGetObjectTags` $$   
  4. CREATE DEFINER=`root`@`%` FUNCTION `fnObjectTagGetObjectTags`(_objectType int, _objectId bigintRETURNS varchar(2048) CHARSET utf8   
  5. BEGIN   
  6.    
  7.   DECLARE _outObjectTags VARCHAR(2048);   
  8.    
  9.   SET _outObjectTags =   
  10.     (   
  11.       SELECT (CAST(GROUP_CONCAT(CONCAT(tagId, '|', tagName) separator '~') AS CHAR(10000) CHARACTER SET utf8)) AS objectTagList   
  12.       FROM   
  13.       (   
  14.    
  15.       SELECT tagId, tagName   
  16.         FROM objectTag   
  17.         INNER JOIN tag   
  18.           ON tagId = objectTagTagId   
  19.         WHERE objectTagObjectType = _objectType   
  20.           AND objectTagObjectId = _objectId   
  21.           AND objectTagIsDisabled = 0   
  22.           AND objectTagIsActive = 1   
  23.           AND tagIsDisabled = 0   
  24.           AND tagIsActive = 1   
  25.       ) as subQuery   
  26.     );   
  27.    
  28.   RETURN _outObjectTags;   
  29.    
  30. END $$   
  31.    
  32. DELIMITER ;   

使用过程,代码如下:

  1. SELECT fnObjectTagGetObjectTags(3, album.albumId)   
  2. FROM album   
  3. WHERE fnObjectTagGetObjectTags(3, album.albumId) IS NOT NULL   
  4. AND albumIsDisabled = 0   
  5. AND albumIsActive = 1   
  6.    
  7. Try an explicit cast of just the tagId www.xiariboke.net as a character before the concatenation, since you may be mixing binary and non-binary strings. Like   
  8.    
  9. SELECT (CAST(GROUP_CONCAT(CONCAT(CAST(tagId AS CHAR), '|', tagName) separator '~') AS CHAR(10000) CHARACTER SET utf8))  
标签:

给我留言