Как вставить запись, используя _date в предложении WHERE? - PullRequest
0 голосов
/ 29 марта 2012

Это сводит меня с ума. Я пытаюсь вставить значение в следующую таблицу "stats":

_date       spam1
-----------------
2011-06-13

с помощью

INSERT INTO stats (spam1) VALUES (7) WHERE `_date` = '2011-06-13'

MySQL возвращает

#1064 - You have an error in your SQL syntax; check the manual that corresponds 
to your MySQL server version for the right syntax to use 
near 'WHERE `_date` = '2011-06-13'' at line 1

Я не понимаю. Удаление кавычек вокруг даты или обратной галочки вокруг _date тоже не поможет. Что я делаю не так?

[EDIT] Спасибо - вы все получаете возражение :) Как глупо с моей стороны ... конечно, мне нужно ОБНОВЛЕНИЕ вместо ВСТАВКИ ... время сделать перерыв, я думаю: P

Ответы [ 4 ]

3 голосов
/ 29 марта 2012

Возможно, вам следует рассмотреть возможность использования ОБНОВЛЕНИЯ вместо ВСТАВКИ

UPDATE stats SET spam1 = 7 WHERE _date = '2011-06-13';
2 голосов
/ 29 марта 2012

Оператор INSERT позволяет добавить новую запись (новую строку) в таблицу. Вы хотите UPDATE существующую запись:

UPDATE stats SET spam1 = 7 WHERE `_date` = '2011-06-13';
2 голосов
/ 29 марта 2012

Вы хотите ОБНОВЛЕНИЕ, а не ВСТАВКА, попробуйте:

UPDATE stats SET `spam1` = 7  WHERE `_date` = '2011-06-13'
1 голос
/ 29 марта 2012

Для INSERT есть две основные формы:

  1. INSERT INTO Table[(columns)] VALUES(...)
  2. INSERT INTO Table[(columns)] SELECT ...

Вы можете использовать предложение WHERE как частьверсия SELECT.

Чего вы пытаетесь достичь?ОБНОВЛЕНИЕ, устанавливающее значение столбца spam1 равным 7, где дата является заданной датой?

UPDATE Stats SET Spam1 = 7 WHERE _Date = '2011-06-13';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...