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

Форум MySQL

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

 

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

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

тема: Как переписать данные из одной таблицы в другую?
 
 автор: Владимир55   (19.02.2009 в 22:10)   письмо автору
 
 

Данные из таблицы str_tmp необходимо дописать в таблицу str_tmp_sum. Для этого я использую код:
    $query = "
    INSERT INTO str_tmp_sum(identif, str, tmp)
      SELECT identif, str, tmp 
    FROM str_tmp";
    mysql_query($query);
Нормально работает.

Однако в исходной таблице str_tmp имеются строки, в которых нет данных по столбцу tmp (их либо на записывали, либо записали пустое. Эти строки есть смысл пропустить. Попробовал вот такой код:
    $query = "
    INSERT INTO str_tmp_sum(identif, str, tmp)
      SELECT identif, str, tmp WHERE tmp IS NO NULL
    FROM str_tmp";
    mysql_query($query);
Не работает.

Попробовал такой код:
    $query = "
    INSERT INTO str_tmp_sum(identif, str, tmp)
      SELECT identif, str, tmp WHERE tmp > 0
    FROM str_tmp";
    mysql_query($query);


Можно перенести таблицу вместе с пустыми ячейками, а потом удалить строки, относящиеся к этим ячейкам.

Как принято поступать в таких ситуациях?

  Ответить  
 
 автор: а-я   (19.02.2009 в 22:18)   письмо автору
 
   для: Владимир55   (19.02.2009 в 22:10)
 

наверно надо

$query = " 
    INSERT INTO str_tmp_sum(identif, str, tmp) 
      SELECT identif, str, tmp WHERE tmp IS NOT NULL 
    FROM str_tmp"; 
    mysql_query($query);

или

$query = " 
    INSERT INTO str_tmp_sum(identif, str, tmp) 
      SELECT identif, str, tmp WHERE tmp !=''
    FROM str_tmp"; 
    mysql_query($query);

  Ответить  
 
 автор: cheops   (20.02.2009 в 00:33)   письмо автору
 
   для: а-я   (19.02.2009 в 22:18)
 

Небольшое дополнение: ключевое слово FROM следует поместить перед WHERE.

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

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