Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.07.2018, 10:18   #1
mr_xxx
Пользователь
 
Регистрация: 22.03.2012
Сообщений: 99
По умолчанию Определить номер строки и добавить после новую строку

Привет

Есть таблица : Test
нужно через sql запрос сделать следующее
Код:
name     |     lastname |     email

N1                L1      E1@mail.com
N2                L2      E2@mail.com      
N3                L3      E3@mail.com      
N4                L4      E4@mail.com      
N5                L5      E5@mail.com      
N6                L6      E6@mail.com
нужно найти строку где name='N3' и добавить после этой строки
новую строку name='X1' lastname='XL' email='x1@mail.com
после запроса должен выглядеть вот так

Код:
name     |     lastname |     email

N1                L1      E1@mail.com
N2                L2      E2@mail.com      
N3                L3      E3@mail.com   
X1                XL      X1@mail.com     
N4                L4      E4@mail.com      
N5                L5      E5@mail.com      
N6                L6      E6@mail.com
Заранее Спасибо
mr_xxx вне форума Ответить с цитированием
Старый 12.07.2018, 10:27   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Что значит добавить после этой строки? SQL так не умеет, а вот выборку сделать в нужной упорядоченности умеет. Хотя этих трех полей не достаточно для организации такой хотелки ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.07.2018, 10:29   #3
mr_xxx
Пользователь
 
Регистрация: 22.03.2012
Сообщений: 99
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Что значит добавить после этой строки? SQL так не умеет, а вот выборку сделать в нужной упорядоченности умеет. Хотя этих трех полей не достаточно для организации такой хотелки ))
тоесть нужно чтобы нашел определенную строку и добавить запись после этой строки
нужно чтобы последовательность было таким
mr_xxx вне форума Ответить с цитированием
Старый 12.07.2018, 10:30   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

. .
Цитата:
SQL так не умеет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.07.2018, 10:32   #5
mr_xxx
Пользователь
 
Регистрация: 22.03.2012
Сообщений: 99
По умолчанию

Цитата:
Сообщение от mr_xxx Посмотреть сообщение
тоесть нужно чтобы нашел определенную строку и добавить запись после этой строки
нужно чтобы последовательность было таким
ну хоть как определит под каким номерем строки находется запись где name='N3'

Последний раз редактировалось mr_xxx; 12.07.2018 в 10:34.
mr_xxx вне форума Ответить с цитированием
Старый 12.07.2018, 10:37   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от mr_xxx Посмотреть сообщение
тоесть нужно чтобы нашел определенную строку и добавить запись после этой строки
стандарт SQL подразумевает, что записи в таблице находятся во внутреннем порядке, Вы можете влиять ТОЛЬКО на порядок, в каком эти записи выбираются (запрос SELECT .. ORDER BY .. )
Более того, стандарт SQL даже не гарантирует, что если Вы добавите в таблицу
3 записи
Name1
Name2
Name3
то после SELECT без order by они вернутся Вам в том же порядке.

поэтому, ваша задача изначально порочна.
меняйте условия задания.

приведу аналогию.
вот у Вас есть файлы в каталоге
Name1
Name2
Name3

в каком порядке они хранятся на диске (в файловой системе) ?
как добавить в каталог ещё один файл NameAlpha, чтобы он был расположен сразу после файла Name1 ?

вот и в SQL нечто подобное...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.07.2018, 10:38   #7
mr_xxx
Пользователь
 
Регистрация: 22.03.2012
Сообщений: 99
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
. .
ну хоть както можно передвинуть запись например не 1 позицию вверх или вниз?
mr_xxx вне форума Ответить с цитированием
Старый 12.07.2018, 10:39   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от mr_xxx Посмотреть сообщение
ну хоть как определит под каким номерем строки находется запись где name='N3'
это зависит от того, как отсортированы записи.

попробуйте сделать запрос
Код:
select * from Test order by 1 desc
и посмотрите, под каким "номерем строки" находится запись N3
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.07.2018, 10:40   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от mr_xxx Посмотреть сообщение
ну хоть както можно передвинуть запись например не 1 позицию вверх или вниз?
нет, нельзя.
можно изменять условие сортировки при выборке данных.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.07.2018, 13:39   #10
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Сообщение от mr_xxx Посмотреть сообщение
ну хоть както можно передвинуть запись например не 1 позицию вверх или вниз?
Ага. Сделать своп записей так, как это используется в сортировке пузырём, например. Правда, не записи в этом случае переместятся и не строки, а значения записей в строках. Но имхо на SQL подобное - чистой воды извращение
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из dbgrid1 добавить строку в dbgrid 2. Также после добавления удалять, очищать строки в dbgrid2 Wotyou Общие вопросы Delphi 4 06.04.2016 22:26
Как добавить новую пустую строку (для заполнения данными) в DBGridEh? sergeykom Компоненты Delphi 0 13.04.2014 17:48
После вставки текста курсор переходит на новую строку BossVdele Общие вопросы Delphi 5 04.02.2014 09:30
Переход на новую строку после пробела nolz Общие вопросы Delphi 7 31.08.2009 19:33
Перевод на новую строку после нужного слова Лёшка228 Общие вопросы Delphi 2 09.06.2009 20:32