Я прочитал этот вопрос , который выдвигает на первый план решение условно вставить значения в таблицу, если они еще не существуют. Мой вопрос: можно ли условно вставить несколько значений одновременно.
Например, скажем, у меня есть таблица, которая содержит только имена пользователей (это бессмысленная таблица, но давайте будем проще). Содержимое таблицы выглядит так:
matthew 20
mark 24
luke 25
john 56
buddy 68
Пользователь вводит jimmy 34, mark 25 и bobby 54 в веб-форму и отправляет их, и я хотел бы проверить, существуют ли эти три значения в таблице, и вставить те, которые отсутствуют в одном выражении. Да, для этого примера я предполагаю, что имена уникальны.
Вот парафраз фрагмента кода из вопроса, с которым я связан, адаптированный к этому примеру:
INSERT INTO users(name)
SELECT 'jimmy'
FROM dual
WHERE NOT EXISTS (SELECT * FROM users
WHERE user = 'jimmy')
Как я могу адаптировать это для нескольких значений, вставляемых одновременно? Также важно, чтобы решение работало независимо от количества введенных значений. В моем примере я даю три (Джимми, Марк и Бобби), но может быть только один или может быть 20.
Второй вопрос: это мудро? Я знаю, что уменьшение количества запросов желательно, но стоит ли оно здесь? Должен ли я просто установить цикл for и цикл, попеременно проверяя, существует ли значение и вставляя, если его нет?
Спасибо за любую помощь.
Извините, у меня нет кода, который я пытался показать сам, я даже не уверен, что здесь попробовать.
Обновление: добавлен дополнительный столбец в таблицу. Я хотел, чтобы все было просто, но мне нужны два столбца, чтобы проиллюстрировать тот факт, что удаление строки, а затем вставка или обновление - это не то, что мне нужно, поскольку они предпочтительнее для ввода пользователя по сравнению с тем, что уже есть в таблице.