Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перемещение по таблице относительно найденой строк 
:(
    Опции темы
PAMAC
Дата 18.11.2012, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 18.11.2012

Репутация: нет
Всего: нет



Добрый день!

Есть таблица со столбцами: имя, адрес, год рождения.
Выполняем поиск по имени, находится одно совпадение.
Вопрос: Как переместиться вверх или вниз от найденного совпадения (строки таблицы)?
PM MAIL   Вверх
Akina
Дата 18.11.2012, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



При какой именно сортировке записей в таблице? а вообще не вопрос - паеренумеруй записи при этой сортировке и возьми нужную по номеру.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
PAMAC
Дата 19.11.2012, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 18.11.2012

Репутация: нет
Всего: нет



без сортировки записей в таблице. не, ну нумеровать не интересно! как без нумеровки сделать?
PM MAIL   Вверх
Akina
Дата 19.11.2012, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



НИКАК!!!

PAMAC, без явно указанной сортировки порядок записей в таблице не определён. И имеет право в любой момент измениться - например, один и тот же запрос без сортировки при двух последовательных вызовах может вернуть записи в разном порядке.




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 19.11.2012, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 33
Всего: 161



Цитата(PAMAC @  19.11.2012,  16:14 Найти цитируемый пост)
как без нумеровки сделать? 

Цитата(Akina @  19.11.2012,  16:32 Найти цитируемый пост)
НИКАК!!!

Без сортировки - никак, без нумерации - отчего нет?

Цитата(PAMAC @  18.11.2012,  23:34 Найти цитируемый пост)
Как переместиться вверх или вниз от найденного совпадения (строки таблицы)

отобраться по больше/меньше, отсортировавшись в прмямом/обратном порядке, ограничить(limit)
stff


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Arantir
Дата 19.11.2012, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: нет
Всего: 55



Способ нумерации может показаться сложным, но это дело одной минуты:
Создайте колонку id с атрибутом auto increment, а потом произведите один запрос:
Код
UPDATE `table_name`, (SELECT @i:=0) t SET `id` = (@i := @i+1);

И существующие поля id заполняться числами 1, 2, 3, 4 и т.д. А новые номера будут добавляться автоматически благодаря параметру auto increment.
Один запрос - и все пронумеровано.

Разве может быть более быстрый и простой способ решения? И осуществить легко и компьютеру будет легко с этим работать. Зачем заставлять машину проделывать целую кучу лишних операций со строками и запросами только из-за того, что не хочется добавлять id? Это ведь код, вы потом обернете все в удобный интерфейс и будет все равно, как именно это работает =))

Это сообщение отредактировал(а) Arantir - 19.11.2012, 19:04


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Akina
Дата 19.11.2012, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(Arantir @  19.11.2012,  20:00 Найти цитируемый пост)
Создайте колонку id с атрибутом auto increment, а потом произведите один запрос:

Ну уж если копипастишь - хотя бы разберись, что копипастишь! или попробуй... хрень ведь написана...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Arantir
Дата 19.11.2012, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: нет
Всего: 55



Цитата(Akina @  19.11.2012,  18:59 Найти цитируемый пост)
Ну уж если копипастишь - хотя бы разберись, что копипастишь! или попробуй... хрень ведь написана... 

Странно, гугл на мой текст совпадений не выдает. Откуда же я это скопипастил? А, наверное ниоткуда. Бывает же такое, люди сами пишут посты.
Ваш ответ просто переполнен пониманием и толерантностью. 
Вы же модератор, в конце-концов, как можно в таком тоне писать?

Что именно из этого "хрень"? Не понимаю... Слово "атрибут"? Могу специально для вас сказать что-то вроде "Используйте ключевое слово AUTO_INCREMENT при добавлении нового поля в таблицу". Но русский язык позволяет назвать это атрибутом, особенно в отношении существующего поля.
Я рассчитывал, что ТС удосужиться создать новое поле и без разжевывания этой процедуры, раз уж он уже имеет базу с таблицами.


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Akina
Дата 19.11.2012, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(Arantir @  19.11.2012,  22:05 Найти цитируемый пост)
Что именно из этого "хрень"? Не понимаю... 

Arantir, ты даже не понял, пачку каких косяков выдал? Ну просто выполни свой же совет! 

Цитата(Arantir @  19.11.2012,  22:05 Найти цитируемый пост)
Вы же модератор

Я - участник. Модератор я совсем в других разделах. Но и там я модератор и я участник - это две разные персоны. Не надо всё в одну кучу.

Цитата(Arantir @  19.11.2012,  22:05 Найти цитируемый пост)
Ваш ответ просто переполнен пониманием и толерантностью. 

Да. Пишешь от фонаря - хотя бы говори об этом.



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Arantir
Дата 19.11.2012, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: нет
Всего: 55



Akina, попробовал.
В чем-то вы правы. Мне еще не приходилось добавлять автополя в уже заполненную таблицу. Теперь буду знать, что они заполняются автоматически уже при создании. Полезный опыт.

Ха, но должен сказать, что мой совет можно выполнить от и до без возникновения каких-либо ошибок =) Ключ и автоинкремент прекрасно перезаполняться запросом и не заикнуться.

P.S.: Я никогда не пишу "от фонаря" и не копипащу. Имейте уважение. Я просто полагаюсь на имеющиеся знания и пробую тут кому-нибудь помочь. На звание гугу-мастера-хакера я не претендую. Можно было и просто вежливо написать, что мол этот вот пункт лишний потому-то, а не дерзить во всю.

Это сообщение отредактировал(а) Arantir - 19.11.2012, 22:01


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
Akina
Дата 19.11.2012, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Arantir, то, что не надо заполнять - полдела.
Автоинкремент ОБЯЗАН быть первичным ключом. И без вариантов. Если таблица у ТС имеет ПК - совет бессмыслен.

Мне тоже в своё время несколько раз за такое дали по морде. И пару раз - по делу. Теперь я почти всегда сперва проверяю свой совет, если хоть немного не убеждён.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Arantir
Дата 20.11.2012, 02:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: нет
Всего: 55



Я в курсе на счет первичного ключа у автоколонок, просто подумал, что среди таких полей как имя, адрес и дата рождения как-то не может быть первичного ключа, позволяющего только уникальные данные.
Да и что мешает дропнуть старый ключ, колонку это не удалит. Даже, если он есть, имена, адреса и даты - плохие поля на роль ключа. Разве что засунуть в ключ сразу две колонки или даже все три, для уникальности, но это уже извращения какие-то в данном случае =)

Ну и нафлудили мы тут. Да ничего, ТС тоже получит полезный совет. Лучше учиться на чужих ошибках  =)

Это сообщение отредактировал(а) Arantir - 20.11.2012, 02:44


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0541 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.