Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > удалить из базы скопом записи


Автор: dstorm81 10.7.2008, 11:00
небольшой вопрос по оптимизации

есть группа чекбоксов, которые отмечают записи на удаление
они приходят массивом через пост
и удаляют из базы записи через ЦИКЛ
то есть многократно выполняются запросы к базе

вот собственно вопрос, можно ли каким нибудь методом сразу передать
запросу все чекбоксы отмеченные на удаление, 
чтобы удаление выполнилось одним запросом

конечно можно самому построить строку с AND-ами и засунуть в запрос, но хотелось узнать может есть какое решение средствами самой mysql



пхп5
мускуль 5
(каскад в данном случае не поможет, так как таблица главная)

Автор: Kesh 10.7.2008, 12:35
Не-а... нету... Правда действительно все делать одним запросом... Тут уж как вам больше нравится, либо с ...OR..., либо с IN (...)

Автор: Feldmarschall 10.7.2008, 14:57
Цитата(dstorm81 @  10.7.2008,  11:00 Найти цитируемый пост)
онечно можно самому построить строку с AND-ами

и как ты себе это представляешь?
чтобы бд удалила строку, у которой id равен и одному и пятнадцати? 

непонятен вопрос про "средства самой sql". что именно она должна "мочь"? узнать у формы, какие в ней были чекбоксы отмечены?

Автор: dstorm81 10.7.2008, 15:22
Feldmarschall не ругайте строго моя пока плохо разбираетсо


Цитата(Feldmarschall @  10.7.2008,  14:57 Найти цитируемый пост)

чтобы бд удалила строку, у которой id равен и одному и пятнадцати? 

вот так я и предполагал, но судя по вашему тону я жестко ошибся

Цитата(Feldmarschall @  10.7.2008,  14:57 Найти цитируемый пост)

средства самой sql". что именно она должна "мочь"? узнать у формы, какие в ней были чекбоксы отмечены?


чтобы примерно так
DELETE FROM `themes`WHERE `id`=POST['семейство чекбоксов'];

 мускуль удалил бы темы с номерами 1, 6, 8, 44






Автор: Feldmarschall 10.7.2008, 16:05
я не ругаюсь, я спрашиваю.
при чем здесь тон?
ты сам, просто глядя на строку, разве не видишь, что она не удовлетворяет условию "id одновременно и 1 и 15"?
у строки ведь только 1 id!


Цитата(dstorm81 @  10.7.2008,  15:22 Найти цитируемый пост)
чтобы примерно так
DELETE FROM `themes`WHERE `id`=POST['семейство чекбоксов'];

То есть, ты хочешь, чтобы SQL понимала переменные РНР? Нет, таких встроенных средств нету.
SQL запрос - это строка. И надо просто эту строку составить. Это несложно.

Автор: Kesh 10.7.2008, 16:38
Тебе надо составлять запрос самому...

DELETE FROM table WHERE id IN ( и тут перечисляешь ).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)