50 / 40 / 5
Регистрация: 30.06.2010
Сообщений: 1,191
1

Удаление строк, с условием

21.02.2015, 23:43. Показов 1628. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Удаляю строки
SQL
1
DELETE FROM geo_patch WHERE Version IN (SELECT Version FROM geo_patch WHERE LevelFlags=128||LevelFlags=26)
и выдает ошибку, что не так?
Table 'geo_patch' is specified twice, both as a target for 'DELETE' and as a separate source for data
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.02.2015, 23:43
Ответы с готовыми решениями:

Удаление строк из бд
Доброго дня. Создаю массив, и запрос на удаление строк. DELETE FROM table WHERE file_id=".$_GET...

Удаление строк
Здравствуйте! Необходимо удалить несколько строк из таблицы, а именно те, у которых галочка стоит...

Удаление строк из БД
Ребят, в общем у меня скрипт рабочий, только вот не могу концовку скрипта дописать) В общем что мне...

Удаление связанных строк
У меня есть 2 таблицы - links(таблица ссылок) и details(инфа которая парсится по этим ссылкам)....

8
Эксперт PHP
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
22.02.2015, 00:44 2
В твоем примере подзопрос явно лишний

SQL
1
DELETE FROM `geo_patch` WHERE `LevelFlags`='128' OR `LevelFlags`='26';
0
50 / 40 / 5
Регистрация: 30.06.2010
Сообщений: 1,191
22.02.2015, 10:22  [ТС] 3
Poznakomlus, не лишний, я узнаю у каких vesion имеется хоть одна строка с такими LevelFlags. Ведь если взять твой запрос, то при двух строках с одинаковым Verion(например 7), но разными LevelFlags(например 128 и 52) удалится всего одна строка, когда надо, что бы удалились все строки с версиями, которые содержат хоть одну строку с levelFlags=128 или 26
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
22.02.2015, 12:35 4
Цитата Сообщение от ProstoMad Посмотреть сообщение
удалится всего одна строка,
почему одна? удалятся строки в которых LevelFlags = 128 или 26

Добавлено через 12 минут
может как-то так?
SQL
1
DELETE FROM `geo_patch` WHERE `Version`=7 AND `LevelFlags` IN (128,26);
0
50 / 40 / 5
Регистрация: 30.06.2010
Сообщений: 1,191
22.02.2015, 14:17  [ТС] 5
fanatikus, так у меня Version не известны. Вот скрин примерной таблицы. Из нее, я получаю Все Version, у которых есть LevelFlags 128 или 26. И надо удалить все строки содержащие эти версии.
Миниатюры
Удаление строк, с условием  
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
22.02.2015, 14:59 6
так в чем проблема,Poznakomlus, написал вам запрос
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
22.02.2015, 17:51 7
Цитата Сообщение от fanatikus Посмотреть сообщение
так в чем проблема
Проблема в том, что не все записи c нужными Version имеют LevelFlags 128 или 26.
ProstoMad, тут нужно немного хитрости:
SQL
1
DELETE FROM `geo_patch` WHERE `Version` IN (SELECT * FROM (SELECT `Version` FROM `geo_patch` WHERE `LevelFlags`= 128 OR `LevelFlags`= 26)tmp)
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
22.02.2015, 18:13 8
я не понимаю, что вам нужно
вы пишите
я получаю Все Version, у которых есть LevelFlags 128 или 26. И надо удалить все строки содержащие эти версии.
тоесть, нужно удалить все строки у которых LevelFlags 128 или 26?

Добавлено через 15 минут
может так?
PHP
1
2
3
4
5
6
if ($result = mysqli_query($link, 'select `Version` from `geo_patch`  where `LevelFlags`= 128 OR `LevelFlags`= 26')) {
 
    while( $row = mysqli_fetch_array($result) ){
        mysqli_query($link, 'delete from `geo_patch` where `Version`='.$row[0]);
    }
}
либо, при выборке формируете строку, типа - (2,4,3) и потом подставляете в where `Version` in (сформированная строка)
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
22.02.2015, 18:16 9
Version--LevelFlags
1--------128
2--------26
1--------11
2--------12
Все записи нужно удалить, зная только LevelFlags=128 или 26, причем одним запросом.
0
22.02.2015, 18:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.02.2015, 18:16
Помогаю со студенческими работами здесь

Удаление строк в MySQL по ID
сделал страницу с выводом данных и соответствующей кнопкой "Удалить" ссылка на удаление работает по...

Удаление выделенных строк
имеется код формирования элементов checkbox <?php if(isset($_GET)) { $root = $_GET; ...

Удаление строк из БД с checkbox
Подскажите, как можно реализовать удаление строк из бд с определенным id с помощью checkbox. т.е....

Удаление строк с критериями
Здравствуйте, подскажите вообще возможно ли так удалить данные из базы. Например у меня есть...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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