Re: SQL-UPDATE "первой" записи | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
да хучь 30 - для хорошего человека то не жалко
|
Re: SQL-UPDATE "первой" записи | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
of63
Попробуйте использовать агрегатную функцию MIN(). она возьмет только одну запись. |
Re: SQL-UPDATE "первой" записи | |
---|---|
of63 Автор Сообщений: 25254 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Попробую, лулгу, какое поле посоветуешь взять в параметр в MIN()?
() напомню, все записи таблички - идентичны, это камень преткновения в нашем форуме, "черная дыра" в опыте общения с таблицами, с БД |
Re: SQL-UPDATE "первой" записи | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
|
Re: SQL-UPDATE "первой" записи | |
---|---|
of63 Автор Сообщений: 25254 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Лулгу, надеюсь, ты программируешь ваши баллистические ракеты )
|
Re: SQL-UPDATE "первой" записи | |
---|---|
pasha_usue Сообщений: 3649 Откуда: Е-бург Дата регистрации: 06.10.2006 |
С точностью до наоборот. ID это суррогатный ключ, он вводится в модель только потому, что оперировать естественным ключом не всегда удобно. А вся теория реляционной модели строится именно что на естественном первичном ключе. Каждая запись таблицы должна иметь одно или несколько полей, уникально идентифицирующих запись (про ID ни слова). И опять, не надо путать причину со следствием. Уже на базе этого допущения был разработан язык SQL, позволяющий оперировать с данными именно такого вида, а не наоборот. Никто не придумывал SQL с потолка, а потом поняв, что тот что-то не умеет, ввёл ограничения. Таким образом, если вы у себя создали нереляционную таблицу, то нет никакого смысла применять к ней язык для реляционных таблиц. Пользуйтесь FIND/REPLACE и радуйтесь. Кстати, все решения с суррогатным ключом типа RECNO и RowID это как-раз попытка привести таблицу к реляционному виду. |
Re: SQL-UPDATE "первой" записи | |
---|---|
of63 Автор Сообщений: 25254 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Да есть "ID" в табличке - это RECNO. Можно WHERE записать например как поиск минимального RECNO() в группе записей по "условие":
|
Re: SQL-UPDATE "первой" записи | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
"По дурацки" - это работать с нереляционными данными в реляционной СУБД средствами языка созданного для реляционной модели. Это как забивать шурупы молотком, и закручивать гвозди отвёрткой.
Кстати, мультимножества в принципе трансформируются в реляционную модель. Вместо таблицы с 10 полями имеющую 100 "абсолютно одинаковых записей", делается таблица с 11-ю полями, одно из которых имеет смысл "число элементов в наборе". Запись там для всей этой "кучи" будет всего одна. Конечно семантически работать с такой таблицей не совсем удобно - операция "извлечения" элемента из набора будет реализоваться как update ... set cnt=cnt-1 вместо delete Операция "помещения" элемента в набор - как merge/upsert (т.е. insert если нет подходящей "кучи", или update ... set cnt=cnt+1 если есть) а не просто insert. А операция "изменения" - как комбинация "извлечения старого" и "помещения нового" элементов. Впрочем, для чисто объектных реализаций работа идёт сходным образом - зачастую явно запрещают "изменять" объект находящийся в колелкции/bag - т.е. его нужно для изменения сначала "извлечь", а затем поместить обратно. ------------------ WBR, Igor |
Re: SQL-UPDATE "первой" записи | |
---|---|
of63 Автор Сообщений: 25254 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Про поле-счетчик в курсе.
Записи на самом деле разные, например, 10 консервных банок, все отличаются датой поставки. Когда банки выставили на полку, то банка теряет свою уникальность (на ней нет ярлычка "дата поставки"), и когда банка разбивается, то надо пометить любую запись банки, от любой даты поставки. Это я упростил, сказав, что есть 10 одинаковых записей, т.е. условие отбора этих 10 банок не может включать в себя дату поставки, и следовательно "видит" 10 одинаковых записей. |
Re: SQL-UPDATE "первой" записи | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Если ты хочешь решать конкретную прикладную задачу - это одно. Под неё и структуру надо делать соответствующую. Если вопрос "теоретический" - то IMHO ответ дан. SQL не работает с мультинаборами - только с "отношениями", где кортежи уникальны. Наличие уникальности позволяет тем или иным способом выйти на ОДНУ КОНКРЕТНУЮ запись - в т.ч. в группе "неразличимых по бизнес-критерию" - скажем в той же "группе" всех банок независимо от даты поставки/номера накладной.
------------------ WBR, Igor |
Re: SQL-UPDATE "первой" записи | |
---|---|
of63 Автор Сообщений: 25254 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Это все понятно, и в теории и в практике. Вопрос был "нет ли в UPDATE такой же опции как TOP N в SELECT". Ведь в SELECT присобачили возврат TOP N - N записей, отобранных произвольно, или в порядке ORDER...
Или интересно как это делают тру-дбашники, когда им надо изменить одну запись в группе неразличимых (кроме ID) записей. Например, в базе "задвоились" консервные банки (оператор по ошибке 2 раза завел одну накладную). Одну запись надо удалить. Никаких "дат ввода" нет. ID есть (тру-база потому-что). Просто 2 одинаковых записи. Какую запись надо удалить? Как записать оператор UPDATE? |
Re: SQL-UPDATE "первой" записи | |
---|---|
pasha_usue Сообщений: 3649 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Типичный диалог с пользователем на эту тему: И другой диалог. Скуль тоже не хочет нести ответственность за выбор записи. (;Ж Ну а чем не тупой критерий MIN(Id) или MAX(Id)? Вполне. |
Re: SQL-UPDATE "первой" записи | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
- да мало ли какова логика то ... может вполне допустимо такое - клиент заказал товар, потом решил продублировать ... все тож самое кроме id (ну раз времени нет - хотя обычно таки есть )))) ) |
Re: SQL-UPDATE "первой" записи | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Кагбы по мотивам...
Мужика ведут на расстрел. Прохожие: - А за что его? - Да ни за что. Просто два одинаковых оказалось. |
Re: SQL-UPDATE "первой" записи | |
---|---|
of63 Автор Сообщений: 25254 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Или нашли двойника Сталина. Сталин приказал его расстрелять, Орджо - «А может, сбрить ему усы?» — „Дельная мысль, — соглашается Сталин. — Сбрить усы, а потом расстрелять“».
|
Re: SQL-UPDATE "первой" записи | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
Опять двадцать пять... Цитата:Они, конечно, разные, но они одинаковые? Ты хоть сам-то понимаешь ЧТО ты пишешь и спрашиваешь? Цитата:Как уже было не единожды написано. Тру-дбашники не занимаются мазохизмом с игнорированием наличия ID. ------------------ Лень - это неосознанная мудрость. |
Re: SQL-UPDATE "первой" записи | |
---|---|
of63 Автор Сообщений: 25254 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
> Ты хоть сам-то понимаешь ЧТО ты пишешь и спрашиваешь?
Элементарный вопрос вроде задал... Приведите пример кода UPDATE одной записи из двух "одинаковых" (определение одинаковости придумайте сами, раз это слово вызывает затруднения в интерпретации). Я привел, с RECNO() (или с ID вместо него). Лулгу привел примеры... и всё. Остальные посты - убеждения меня в моей непроходимой тупости |
Re: SQL-UPDATE "первой" записи | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
Это некорректный вопрос. Про сферического коня. Ты тупо уперся в неуникальность. Хотя тебе твердят, что ее нет. И даже если бы была её нетрудно убрать. Потому отказ от уникальности похож на идиотизм. ------------------ Лень - это неосознанная мудрость. |
Re: SQL-UPDATE "первой" записи | |
---|---|
akvvohinc Сообщений: 4219 Откуда: Москва Дата регистрации: 11.11.2008 |
По-моему, TOP без ORDER работать не будет. |
Re: SQL-UPDATE "первой" записи | |
---|---|
of63 Автор Сообщений: 25254 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Пишут что да, не будет. Согласен на UPDATE TOP 1 c ORDER-ом )
Хелп: Для использования опции ограниченной выборки TOP, вы болжны обязательно определить секцию ORDER BY, для сортировки. В секции ORDER BY определяется имя / номер столбца, относительно которого выполняется выборка первых записей Запроса, количество которых задается в опции TOP. |
© 2000-2024 Fox Club  |