Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Удаление при помощи вложенного запроса
 
 автор: tAleks   (09.09.2008 в 09:18)   письмо автору
 
 

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


$sql_del = "
DELETE mag_nmc_types WHERE id_nmc_type IN($id_enum)
AND id_nmc_type NOT IN (SELECT id_nmc_type FROM mag_nmc WHERE id_nmc_type IN($id_enum))";



Упрощенный запрос, для простоты эксперимента.

$sql_del = "
DELETE mag_nmc_types WHERE id_nmc_type IN(2)
AND id_nmc_type NOT IN ( 2 )";


Этот запрос, удаляет запись из таблицы mag_nmc_types, а mysql_affected_rows() выдает 0.

  Ответить  
 
 автор: cheops   (09.09.2008 в 11:19)   письмо автору
 
   для: tAleks   (09.09.2008 в 09:18)
 

>Упрощенный запрос, для простоты эксперимента.
>

>$sql_del = "
>DELETE mag_nmc_types WHERE id_nmc_type IN(2)
>AND id_nmc_type NOT IN ( 2 )";
>

Не понятно зачем тут используется два противоречащих друг другу условия?

  Ответить  
 
 автор: Trianon   (09.09.2008 в 11:30)   письмо автору
 
   для: cheops   (09.09.2008 в 11:19)
 

вторая двойка - это, наверное, результат вложенного запроса.
Автора, как я понял, беспокоит, что строка стирается, а affected rows возвращается нулевым.
Что-то не верится как-то. Наверняка строки и до запроса в таблице не было.

  Ответить  
 
 автор: tAleks   (09.09.2008 в 11:34)   письмо автору
 
   для: Trianon   (09.09.2008 в 11:30)
 

Самому не вериться. но строка 100% до запроса в таблице была! Несколько раз проверял, добавлял и удалял строку.

  Ответить  
 
 автор: tAleks   (09.09.2008 в 11:35)   письмо автору
 
   для: cheops   (09.09.2008 в 11:19)
 

Двойка, во вторм случае, это разультат вложенного запроса.

  Ответить  
 
 автор: tAleks   (09.09.2008 в 11:41)   письмо автору
 
   для: tAleks   (09.09.2008 в 09:18)
 


$sql_del = " 
DELETE mag_nmc_types WHERE id_nmc_type IN(2) 
AND id_nmc_type NOT IN ( 2 )"; 


Вопрос, по большей части не в том, что mysql_affected_rows() выдает 0, а в том, почему строка удаляется.

  Ответить  
 
 автор: tAleks   (09.09.2008 в 12:23)   письмо автору
 
   для: tAleks   (09.09.2008 в 11:41)
 

Вопрос снят! Всем спасибо! Все работает правильно! Касяк был п простой невнимательности.... :) После указанного кода, забыл удалить старый код, который и грохал строку.... :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования