Можно ли получить целочисленное значение таблицы в MySQL? - PullRequest
0 голосов
/ 11 января 2012

У меня запрос к базе данных

SELECT Id FROM Phone WHERE Model = 'Droid'

, который возвращает таблицу с одной записью (потому что Id является первичным ключом). Таблица выглядит так:

+----+
| Id |
+----+
|  1 |
+----+

Есть ли способ получить это целое число "1"? Я хотел бы использовать его в следующем запросе, но он генерирует синтаксическую ошибку:

INSERT INTO Sale (Id, Price)
    VALUES (SELECT Id FROM Phone WHERE Model = 'Droid', 100.00);

Ответы [ 4 ]

3 голосов
/ 11 января 2012

Используйте это:

INSERT INTO Sale (Id, Price)
SELECT Id, 100.00 
  FROM Phone 
  WHERE Model = 'Droid';
1 голос
/ 11 января 2012

Вам просто нужны скобки вокруг вашего запроса на выборку, например:

INSERT INTO Sale (Id, Price)
VALUES ((SELECT Id FROM Phone WHERE Model = 'Droid'), 100.00);

Это должно работать правильно.

1 голос
/ 11 января 2012

Подзапросы должны быть упакованы в свои ()

0 голосов
/ 11 января 2012

Дело не в том, что вы получаете какую-то несовместимость типов;Ваш синтаксис просто неверен.Попробуйте просто

INSERT INTO Sale (Id, Price)
(SELECT Id,100 FROM Phone WHERE Model = 'Droid');
...