Оператор IF в sql ищет строку

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

IF ( SELECT word FROM words WHERE word = 'hello' ) THEN
BEGIN select * from word;
END;
ELSE
BEGIN INSERT INTO TABLE word VALUES ('hello');
END;
END IF;

спасибо заранее

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
0
31
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете использовать INSERT с предложением EXISTS:

INSERT INTO yourTable (word)
SELECT 'word' FROM dual
WHERE NOT EXISTS (SELECT 1 FROM yourTable WHERE word = 'word');

Возможно, вы захотите также изучить такие вещи, как уникальные ограничения (например, уникальное ограничение в столбце word) или upserts, которые могут выполнять обновление, если обнаруживает, что запись уже существует.

@Nick Да, моя автокоррекция MacBook Air взяла верх надо мной ... снова

Tim Biegeleisen 29.11.2018 13:55

Возможно, вы могли бы попробовать что-то вроде этого:

INSERT INTO `tablename` (`word`) 
VALUES ('hello')
WHERE NOT EXISTS (
    SELECT * 
    FROM `words`
    WHERE `word` = 'hello'
);

Другие вопросы по теме