Как я могу выбрать SELECT + INSERT в том же запросе MySQL? - PullRequest
3 голосов
/ 06 сентября 2010

У меня есть php-скрипт, который обрабатывает ключевые слова из таблицы «ключевые слова» таблицы mysql (столбцы: id - ключевое слово), а затем сохраняет данные в другую таблицу «данные» (column: id [внешний ключ keys.id] - имя файла - DataValue).

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

Так есть ли способ получить идентификатор ключевого слова и сохранить данные в одном запросе mysql? (Я имею в виду без необходимости делать что-то вроде SELECT id из ключевых слов, где ключевое слово = ключевое слово, а затем выполнить другой запрос для вставки.

1 Ответ

10 голосов
/ 06 сентября 2010

Если таблицы выбора и модификации отличаются - вы можете использовать простой вложенный запрос:

INSERT INTO `data` (`id`, `dataname`) VALUES
(
    (SELECT `id` FROM `keywords` WHERE `keyword` = 'keyworrrrrd'),
    'blabla'
)

или

INSERT INTO `data` (`id`, `dataname`)
SELECT `id`, 'blabla' FROM `keywords` WHERE `keyword` = 'keyworrrrrd'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...