首页 文章

MYSQL截断了不正确的DOUBLE值

提问于
浏览
116

执行以下SQL查询时:

UPDATE shop_category 
SET name = 'Secolul XVI - XVIII' 
    AND name_eng = '16th to 18th centuries' 
WHERE category_id = 4768

引发以下错误:

1292 - Truncated incorrect DOUBLE value: 'Secolul XVI - XVIII'

如何解决这个问题?


shop_category 表结构:

category_id   mediumint(8)
name        varchar(250)
name_eng      varchar(250)

8 回答

  • -5

    我得到这个异常不是因为AND而不是逗号,事实上我只是因为我没有在where子句中使用撇号而得到这个异常 .

    就像我的查询一样

    update table set coulmn1='something' where column2 in (00012121);
    

    当我将where子句更改为 where column2 in ('00012121'); 时,查询对我来说很好 .

  • 54

    尝试用 , 替换 AND

    UPDATE shop_category 
    SET name = 'Secolul XVI - XVIII', name_eng = '16th to 18th centuries' 
    WHERE category_id = 4768
    

    UPDATE Syntax显示逗号应该用作分隔符 .

  • 0

    您不需要 AND 关键字 . 这是correct syntax of the UPDATE statement

    UPDATE 
        shop_category 
    SET 
        name = 'Secolul XVI - XVIII', 
        name_eng = '16th to 18th centuries' 
    WHERE 
        category_id = 4768
    
  • 11

    主要是无效的查询字符串将发出此警告 .

    使用 INSTR 函数时,由于语法错误(错误的右括号)而导致错误:

    INSERT INTO users (user_name) SELECT name FROM site_users WHERE
    INSTR(status, 'active'>0);
    

    Correct:

    INSERT INTO users (user_name) SELECT name FROM site_users WHERE
    INSTR(status, 'active')>0;
    
  • 2

    如果你的插件看起来像下面这个问题,那么问题可能只是缺少 -- 和评论文本之间的空格:

    insert into myTable (a, b, c)
    values (
       123 --something
      ,345 --something else
      ,567 --something something else
    );
    

    这个问题是 --something 实际上应该是带有空格的 -- something .

  • 162

    我只是浪费了我的时间,并希望添加一个此错误出现的其他案例 .

    SQL Error (1292): Truncated incorrect DOUBLE value: 'N0003'
    

    测试数据

    CREATE TABLE `table1 ` (
        `value1` VARCHAR(50) NOT NULL 
    );
    INSERT INTO table1 (value1) VALUES ('N0003');
    
    CREATE TABLE `table2 ` (
        `value2` VARCHAR(50) NOT NULL 
    );
    
    INSERT INTO table2 (value2)
    SELECT value1
    FROM table1
    WHERE 1
    ORDER BY value1+0
    

    问题是 ORDER BY value1+0 - 类型转换 .

    我知道它没有回答这个问题,但这是谷歌针对此错误的第一个结果,它应该有其他示例,其中出现此错误 .

  • 3

    我得到了相同的错误,并在两个列值之间用“,”替换AND后解决了 .

    UPDATE IGNORE TRANSFORMERDATA SET TRANSFORMERNAME ='DummyXmer.jar',REMARKS ='DummeyXmer'WHERERE GENERATEDRUNID ='DB1-DB2RYTSYFGWTY8966'

  • 1
    $up="UPDATE users1 SET user_fname='$fname' and user_lname='$lname' where user_emp_code=$emp";
    

    删除并用 , 替换 and 后工作正常:

    $up="UPDATE users1 SET user_fname='$fname', user_lname='$lname' where user_emp_code=$emp";

相关问题