m5web
@m5web
Python, js

Как составить SQL запрос для обновления несуществующей записи?

Здравствуйте!

Подскажите пожалуйста как составить запрос к БД что бы добавить определенное значение в таблицу, если его значение не существует.

DB:
CREATE TABLE IF NOT EXISTS `sites` (
`id` int(11) NOT NULL,
  `site_url` varchar(255) NOT NULL,
  `site_size_bytes` int(100) NOT NULL,
  `site_platform` text NOT NULL,
  `site_status` text NOT NULL,
  `site_info_updated` datetime NOT NULL,
  `domain_paid_till` date NOT NULL,
  `additional_domains` text NOT NULL,
  `site_paid_till` date NOT NULL,
  `comment` longtext NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `sites`
 ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `site_url_2` (`site_url`), ADD UNIQUE KEY `id` (`id`), ADD KEY `site_url` (`site_url`);

ALTER TABLE `sites`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;


Query:
INSERT IGNORE INTO
    sites (site_url, site_size_bytes, site_platform, site_status, site_info_updated)
VALUES
    ('$val[site_url]', '$val[site_size]', '$val[site_platform]', 'just added', '$current_datetime')

ON DUPLICATE KEY UPDATE
    site_info_updated = '$current_datetime',
    site_size_bytes = '$val[site_size]',
    site_status = 'updated'


Суть: если site_url не совпадает (отсутствует) с тем, что есть в массиве $val[site_url], записывать значение empty в site_status.

Заранее благодарю за помощь желающим помочь!
  • Вопрос задан
  • 671 просмотр
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Сначала ставите всем сайтам в таблице `site_status` = 'empty', затем заносите данные из $val.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы