MYSQL усек неправильное двойное значение



при выполнении 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)
1205   8  

8 ответов:

вам не нужно AND ключевое слово. Вот это правильный синтаксис инструкции UPDATE:

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

Я получал это исключение не из-за и вместо запятой, на самом деле у меня было это исключение только потому, что я не использовал апострофы в предложении where.

Как мой запрос был

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

когда я изменил предложение where where column2 in ('00012121'); запрос работал штрафа для меня.

попробуйте заменить AND С ,

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

The обновить синтаксис показывает, что запятая должна использоваться в качестве разделителя.

В основном недопустимые строки запроса выдадут это предупреждение.

неправильно из-за тонкой синтаксической ошибки (неуместная правая скобка) при использовании INSTR функция:

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

правильно:

INSERT INTO users (user_name) SELECT name FROM site_users WHERE
INSTR(status, 'active')>0;
$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";

Я просто впустую мое время на это и хотел добавить дополнительный случай, когда эта ошибка проявляется.

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 - тип литья.

Я знаю, что он не отвечает на вопрос, но это первый результат в Google для этой ошибки, и он должен иметь другие примеры, где эта ошибка представляет себя.

если вы получаете эту проблему со вставкой, которая выглядит, как показано ниже, проблема может быть просто отсутствие пробела между -- и текст комментария:

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

проблема в том, что --something на самом деле должно быть -- something С пробелом.

Я получал ту же ошибку, и это было решено после замены и С", " между двумя значениями столбца.

обновить игнорировать TRANSFORMERDATA SET TRANSFORMERNAME= ' DummyXmer.jar', REMARKS = 'DummeyXmer' ГДЕ GENERATEDRUNID= 'DB1-DB2RYTSYFGWTY8966'

Comments

    Ничего не найдено.