удалить записи оставив несколько[MSSQL]

MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Electronik
капитан
Сообщения: 1593
Зарегистрирован: 2008-11-15 17:32:56
Откуда: Минск
Контактная информация:

удалить записи оставив несколько[MSSQL]

Непрочитанное сообщение Electronik » 2014-07-30 17:53:07

как удалить все записи из таблицы оставив только первых 50
Предскажем будущее hw по логам и дампу, снимем сглаз и порчу с рута, поможем придумать пароль(С)
Блог

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: удалить записи оставив несколько[MSSQL]

Непрочитанное сообщение Alex Keda » 2014-10-17 11:16:42

По тому же условию, по которому 50 строк и выбираете
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Neus
капитан
Сообщения: 1977
Зарегистрирован: 2008-09-08 21:59:56

Re: удалить записи оставив несколько[MSSQL]

Непрочитанное сообщение Neus » 2014-10-17 15:47:08

Alex Keda писал(а):По тому же условию, по которому 50 строк и выбираете
неа
он тада эти 50 и удалит, а ему надо их оставить

Аватара пользователя
Neus
капитан
Сообщения: 1977
Зарегистрирован: 2008-09-08 21:59:56

Re: удалить записи оставив несколько[MSSQL]

Непрочитанное сообщение Neus » 2014-10-17 15:53:47

Electronik писал(а):как удалить все записи из таблицы оставив только первых 50
типа такого

Код: Выделить всё

delete *
from blabla
where blabla.id not in (select top 50 blabla.id)
это псевдокод, т.к. точный синтаксис не помню - лезь в его мануал

Аватара пользователя
Electronik
капитан
Сообщения: 1593
Зарегистрирован: 2008-11-15 17:32:56
Откуда: Минск
Контактная информация:

Re: удалить записи оставив несколько[MSSQL]

Непрочитанное сообщение Electronik » 2014-10-17 17:39:56

Спасибо! Буду разбираться.
Предскажем будущее hw по логам и дампу, снимем сглаз и порчу с рута, поможем придумать пароль(С)
Блог

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35454
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: удалить записи оставив несколько[MSSQL]

Непрочитанное сообщение Alex Keda » 2014-10-17 19:24:41

Neus писал(а):
Alex Keda писал(а):По тому же условию, по которому 50 строк и выбираете
неа
он тада эти 50 и удалит, а ему надо их оставить
ну знаете ли, уж подумать что условие надо инвертировать - это совсем детский труд.
такие банальности и писать-то лень
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Neus
капитан
Сообщения: 1977
Зарегистрирован: 2008-09-08 21:59:56

Re: удалить записи оставив несколько[MSSQL]

Непрочитанное сообщение Neus » 2014-10-18 17:32:34

Код: Выделить всё

Select top 50
Where age > 50
Order by age desc 
Задача удалить все записи кроме этих
Напиши запрос с инверсией условия выборки :)

Аватара пользователя
QweЯty
лейтенант
Сообщения: 796
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: удалить записи оставив несколько[MSSQL]

Непрочитанное сообщение QweЯty » 2014-11-19 19:02:35

Доброго всем дня :)

подскажите пожалуйста по MSSQL
есть base
use base;

делаем запрос:

Код: Выделить всё

select name, name_r from id_1 where id_2<>'';
выводит таблицей из 85000 список name, namer.

как заполнить данный список значением null или пустым местом, так как это текстовое поле...
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Аватара пользователя
Neus
капитан
Сообщения: 1977
Зарегистрирован: 2008-09-08 21:59:56

Re: удалить записи оставив несколько[MSSQL]

Непрочитанное сообщение Neus » 2014-11-20 0:30:47

Какое из 3-х полей заполнить ?

Аватара пользователя
QweЯty
лейтенант
Сообщения: 796
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: удалить записи оставив несколько[MSSQL]

Непрочитанное сообщение QweЯty » 2014-11-20 2:48:20

name и name_r

id_2 остается неизменным
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Аватара пользователя
Neus
капитан
Сообщения: 1977
Зарегистрирован: 2008-09-08 21:59:56

Re: удалить записи оставив несколько[MSSQL]

Непрочитанное сообщение Neus » 2014-11-20 7:50:55

т.е. поля name и name_r надо "обнулить" у записей с не пустым id_2 ?

Код: Выделить всё

update id_1 set name=null, name_r=null where id_2<>'';
или 
update id_1 set name='', name_r='' where id_2<>'';

Аватара пользователя
QweЯty
лейтенант
Сообщения: 796
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: удалить записи оставив несколько[MSSQL]

Непрочитанное сообщение QweЯty » 2014-11-20 18:52:14

странно, я так же вводил... облом был....
мож кавычки не те вводил...
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Аватара пользователя
Neus
капитан
Сообщения: 1977
Зарегистрирован: 2008-09-08 21:59:56

Re: удалить записи оставив несколько[MSSQL]

Непрочитанное сообщение Neus » 2014-11-21 8:20:32

а присвоение null работает или нет?

Аватара пользователя
QweЯty
лейтенант
Сообщения: 796
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: удалить записи оставив несколько[MSSQL]

Непрочитанное сообщение QweЯty » 2014-11-21 22:47:42

null не юзал, сразу '' попробовал - справился... оттого и в афиге был)))
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Аватара пользователя
QweЯty
лейтенант
Сообщения: 796
Зарегистрирован: 2010-10-12 0:15:15
Откуда: Таганрог, Калининград
Контактная информация:

Re: удалить записи оставив несколько[MSSQL]

Непрочитанное сообщение QweЯty » 2014-12-03 16:26:23

даа... начальство млин...итить его в тудыть....

хорошо перед удалением сделал бекап таблицы удаленной)) затребовали все восстановить

удалял значения из таблицы так:

Код: Выделить всё

update table 
set 
	name_1=N'', 
	name_2=N'',
	name_3=0
where name_0<>'';
формат бекапа такой:

Код: Выделить всё

name_0;name_1;name_2;name_3;name_4;name_5;name_6;name_7;name_8;name_9;name_10;name_11;name_12;name_13;name_14;name_15;name_16;name_17;name_18;name_19
name_0 в базе так и остался... просто пустые значения в name_1 name_2 name_3

как можно восстановить данные из файла в таблицу в msqsl? так как менять/удалять name_0 не получается - ругань идет...
Инженер не смотрит порно. Он ведет расчет бабы на усталость © Федор Сумкин
Изображение

Аватара пользователя
Neus
капитан
Сообщения: 1977
Зарегистрирован: 2008-09-08 21:59:56

Re: удалить записи оставив несколько[MSSQL]

Непрочитанное сообщение Neus » 2014-12-03 18:43:58

ууу
иди на sql.ru
там быстрее помогут

импортируй в временную таблицу и пиши процедуру

КвертЯ
проходил мимо

Re: удалить записи оставив несколько[MSSQL]

Непрочитанное сообщение КвертЯ » 2014-12-03 19:24:40

так и думал сделать, но не нашел как залить cvs в таблицу, импрортер ругается постоянно...