Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
64 / 22 / 9
Регистрация: 03.11.2012
Сообщений: 327
1

Создание условия в операторе DELETE

17.07.2014, 23:36. Показов 1213. Ответов 2

Author24 — интернет-сервис помощи студентам
В общем есть база с новостями. У пользователя есть возможность отметить новость в Избранное.

БД

Есть две таблицы: news и favorite. Отмечая новость как Избранное - я заношу запись в таблицу favorite - idUser -> idNews.

Новости на сайте выводятся только сегодняшние и вчерашние. Все остальные - удаляются.

Вопрос

Как сформировать запрос, чтобы удалялись все новости кроме сегодняшних, вчерашних и тех новостей (с датой добавления хоть 01.01.1970), id которых есть в таблице favorite?

PHP
1
2
3
4
5
6
7
8
    $queryFavorite=mysql_query("SELECT * FROM favorite");
    while ($resultFavorite=mysql_fetch_array($queryFavorite))   {
        mysql_query("DELETE FROM news WHERE (
            `id`!='".$resultFavorite['idNews']."' and 
            DATE_FORMAT(dateAdd, '%Y-%m-%d')!=CURDATE() and
            DATE_FORMAT(dateAdd, '%Y-%m-%d')!=SUBDATE(CURDATE(), 1)
        )");
    }
Пробовал такой запрос, но если новость позавчерашняя то она удаляется.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2014, 23:36
Ответы с готовыми решениями:

Подскажите о операторе delete
Как правильно пользоваться оператором удаления delete??

Программа падает на операторе delete
#include <iostream> int main() { int temp = 8; int* p = &temp; delete p;

Ошибка в операторе условия
почему ругается на строчку с условием? объясните новичку #include <stdio.h> #include <conio.h>...

Компилятор не принимает then в операторе условия
Здравствуйте, недавно начал изучать Pascal, и столкнулся с проблемой, я не могу понять почему...

2
363 / 334 / 38
Регистрация: 29.03.2011
Сообщений: 838
19.07.2014, 11:45 2
Лучший ответ Сообщение было отмечено sending как решение

Решение

sending, вам не нужны здесь запросы в цикле.
MySQL
1
2
3
DELETE FROM `news` WHERE 
`dateAdd` < DATE_SUB(CURDATE(), 1 DAY) AND 
`id` NOT IN (SELECT `id` FROM `favorite`)
1
64 / 22 / 9
Регистрация: 03.11.2012
Сообщений: 327
19.07.2014, 14:48  [ТС] 3
sKotenok, спасибо за помощь!
0
19.07.2014, 14:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2014, 14:48
Помогаю со студенческими работами здесь

Почему не срабатывают условия в операторе if (работа с массивами)?
Приветствую. Есть код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;clocale&gt; using...

Как проверить условие равенства в операторе условия
Допустим идет условие &quot; если x=3 то что то делается&quot; как это записать? знаки равенства в...

Создание кнопок INSERT, UPDATE, DELETE
мужики, я сделал базу данных, подключил ее к builder далее в билдере нужно создать 3 кнопки с...

Написать аналог процедуры Delete. Процедурой Delete и функцией Copy не пользоваться
Написать аналог процедуры Delete. Процедурой Delete и функцией Copy не пользоваться. кто сможет?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru