powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Доступ к данным
21 сообщений из 21, страница 1 из 1
Доступ к данным
    #33415547
octopus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, кто знает: Можно ли как нить вытащить данные из ячейки таблицы mysql, зная название столбца и номер ряда по порядку?
...
Рейтинг: 0 / 0
Доступ к данным
    #33415597
Фотография ©Felix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как ето номер ряда по порядку??? с каких ет пор у записей есть порядок???
_______________
Felix
...
Рейтинг: 0 / 0
Доступ к данным
    #33415625
octopus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
понятно, раз нет порядка - значит нет и доступа по порядку. Но вот смещение... вот вычислил я с помощью функции count(distinct myfield) смещение нужного мне ряда. Как теперь зная это смещение выудить информацию из этого ряда???
...
Рейтинг: 0 / 0
Доступ к данным
    #33415630
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LIMIT?
Но вообще более правильным будет использование уникального идентификатора.
...
Рейтинг: 0 / 0
Доступ к данным
    #33415639
octopus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нда. Limit не плохая идея. Только проблема в том что он принимает в качестве аргументов непосредственные числовые значения, а у меня числовое значение полученное с помощю подвыражения (count(distinct myfild). Такое "число" limit не поймет.
Уникальный идентификатор тоже неплохая идея вот только как узать в какой строке он расположен - ведь все что мы о нем знаем это название столбца где хранятся уникальные идентификаторы и его смещение вычисленное с помощью все той же count(distinct myfild)
...
Рейтинг: 0 / 0
Доступ к данным
    #33415648
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А теперь расскажите, что же на самом деле вам надо (без кивков в сторону count(distinct myfield).
...
Рейтинг: 0 / 0
Доступ к данным
    #33417016
octopus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня таблица, в которую добавляется информацияя о новых пользователях, в том числе и уникальный идентификатор. Так вот,я хотел сделать так чтобы когда пользователь удалял свою учетную запись его идентификатор не проподал навсегда (идентификаторы добавляются по порядку, т.е. 001, 002 и т.д.), а добавлялся в отдельный столбец все той же таблице. И когда новый пользователь будет регестрироваться и ему надо будет присвоить уникальный идентификатор по задумке должен был осуществляться поиск свободных идентификаторов в этом столбце и только если в столбце нет идетификаторов только после этого пользователью присваивается следующий по порядку номер. Вот у меня и была задача извлечь из столбца свободных идентификаторов последний добавленный. С помощью функции count() я находил его расположение, а как зная положение нужной записи в таблице извлечь ее не знаю до сих пор.
Честно говоря я немного удивлен что по таблице нельзя осуществлять навигацию. Я так доадываюсь что эти средства возлагаются на приложения работающие с таблицами mysql. Но ведь есть же оператор limit. С его помощью можно вытащить любую запись или группу записей по их расположению (смещению). Почему бы не пойти дальше и не предоставиь возможность доступа к записи по ее местоположению ???
...
Рейтинг: 0 / 0
Доступ к данным
    #33417123
VERS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Доступ к данным
    #33417134
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм... Вообще, часто встречающаяся навязчивая идея как-то следить за суррогатным индексом, надопускать в нём дырок и т.п. ... скажем... малоосмысленна. Тем не менее, вот вам решение: добавляете в таблицу целочисленное поле inactive. При удалении пользователя, ему выставляется 1, а вся персональная информация, которую, возможно, хранить после удаления пользователя в таблице нежелательно, затирается. При создании нового пользователя, осуществляется запрос UPDATE tblame SET ... WHERE inactive=1 ORDER BY id LIMIT 1. Решение в точности соответствует задаче, то есть корявое.)
...
Рейтинг: 0 / 0
Доступ к данным
    #33419833
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему афтар не понимает ответов.
И задача у него простая, достаточно завести состояние записи пользователя и просто скрывать его, а потом подтягивать.
Вообще функция count() считает количество цифр, т.е. если афтар знает это количество, значит нужно выбрать последнюю запись из таблицы.
В таблице по идее должен бы быть primary key auto_increment, тогда достаточно выьащить запись с максимальным ключем.
Он будет последним, но это не решит проблему афтара, зато прямой ответ на вопрос.
...
Рейтинг: 0 / 0
Доступ к данным
    #33420067
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно не добавлять новое поле, а юзать уже имеющееся, например, логин. Объявить его как нулл, соотв-но значение нулл в поле "логин" будет говорить, что данная запись свободна для заполнения. UPDATE tblame SET ... WHERE login is null ORDER BY id LIMIT 1.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
Доступ к данным
    #33420069
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы можно без ORDER BY.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
Доступ к данным
    #33420112
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoможно не добавлять новое поле, а юзать уже имеющееся, например, логин. Объявить его как нулл, соотв-но значение нулл в поле "логин" будет говорить, что данная запись свободна для заполнения. UPDATE tblame SET ... WHERE login is null ORDER BY id LIMIT 1.

Можно и так, конечно, но я обычно накладываю на логин ограничение уникальности.)
...
Рейтинг: 0 / 0
Доступ к данным
    #33420459
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запамятовал :)
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
Доступ к данным
    #33420708
Фотография Валентин К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ограничение уникальности НЕ распространяется на NULL-значения
...
Рейтинг: 0 / 0
Доступ к данным
    #33421430
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну мля, можно и пароль заюзать.
...
Рейтинг: 0 / 0
Доступ к данным
    #33423972
octopus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за участие. Проблему решил по другому. Раз такие проблемы с идентификатором(который я хотел сохранить для будующих пользователей) то я вообще отказался от него. Теперь его роль будет выполнять уникальное имя пользователя. Два в одном - оно же имя, он же идентификатор. Если пользователь удаляет свою учетную запись, то удаляется и его уникальное имя-идентификатор, следовательно новый пользователь сможет его использовать и самое главное что тут не образуется дыр, как это бы имело место при числовом порядковом идентификаторе, т.к. в именах-идентификаторах порядковость отсутствует.
...
Рейтинг: 0 / 0
Доступ к данным
    #33423976
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И дались вам эти дыры...
Ну есть они, и что теперь?
А вас не будет волновать, что, скажем, юзер Aaa есть, Aac есть, а Aab нету?
...
Рейтинг: 0 / 0
Доступ к данным
    #33424000
octopus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если у меня в базе миллион пользователей, одна четверть которых себя удалила (к примеру), тогда вместо идентификатора 250000, мы получим 1000000, т.е. таблица будет больше или вы считаете что это мелочь - капля в море? - Смотря для чего таблица и сколько таких таблиц в базе! А что касается порядковости в именах, то тут деваться некуда, т.к. имя идентифицирующее пользователя в любом случае должно присутствовать.
...
Рейтинг: 0 / 0
Доступ к данным
    #33424052
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник

Однако, аргументация...
Кстати, вы в курсе, что гигабайт дискового пространства давным-давно обходится менее 1 доллара?
А что размер хранящихся данных в базе зависит сугубо от типа поля, а не его содержимого (для целочисленного типа, по крайней мере)? И что если у вас в базе порядка 250 килопользователей, то и для 250000, и для 1000000 придётся использовать один и тот же MEDIUMINT?
Есть статья более общего характера, но очень в тему к такого рода оптимизациям...
...
Рейтинг: 0 / 0
Доступ к данным
    #33424815
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неверной дорогой едёте, товарищ octopus. Сколько занимает каждое поле, написано в мане http://dev.mysql.com/doc/refman/4.1/en/storage-requirements.html
если поле объявлено как
Код: plaintext
id int auto_increment
, то и идентификатор 1 и 1000000 будут занимать по 4 байта.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Доступ к данным
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]