Произвольный доступ к данным в MySQL

интернет программирование MySQL базы данных БД

Возможен ли в MySQL произвольная запись в существующие поля, например, BLOB или TEXT.
Т.е. я имею ввиду, если у меня записаны данные "AAABBBCCC", могу я, не переписывая, всего поля, изменить, например, третий символ.
Или подскажите каким способом можно провернуть подобное, кроме ручного разбиения на сегменты.
Есть очень огромное поле, но при каждой записи меняется только один байт, и полное обновление поля очень накладно.

Примечание:
Edd (новый пользователь)
> P.S.: Если бы знать, что это за данные, можно было бы подумать, как решить проблему

Это массив игрового поля для каждого пользователя. Нужно хранить в БД, свой движок не получится.
Решение вижу лишь в разбиении массива на сектора 10x10, каждый хранить в своём поле, и при изменении
одной ячейки определять, в каком секторе это произошло, и только его перезаписывать.

Гораздо же практичнее было бы просто изменять данные напрямую в поле )

Примечание:
> Подумайте, может быть, лучше будет хранить каждую ячейку поля в своей строке
Не удобнее. Потому что поле у каждого игрока своё. Игроков миллионы, ячеек десятки тысяч на каждого. Это не вариант.
Ответы:
"Есть очень огромное поле, но при каждой записи меняется только один байт, и полное обновление поля очень накладно."
Значит база неправильно спроектирована. Особенно неправильным был выбор MySQL. Уж очень она примитивна и не для того создавалась..
чем она примитивна то? связи есть, внешние ключи есть, транзакции есть, репликации есть, хранимые процедуры есть, распределение по нескольких серверам есть. Вы давно за разработкой mysql не следите?
можно попробовать в самом запросе с помощью Replace
2intlex
REPLACE производит замену и поиск по всему тексту, это не подойдет.
К индексу строковой переменной Вам обратиться не удастся, в MySQL нет таких возможностей. Я бы рекомендовал использовать INSERT:
Подумайте, может быть, лучше будет хранить каждую ячейку поля в своей строке. В этом случае обновление вы будете производить простым и естественным путём - модификацией строки. Для MySQL не составит труда сделать Вам выборку нужных ячеек по запросу (например, если Вам не нужно всё поле сразу, а только некий сегмент), особенно если создан корректный индекс. Кроме того, наверняка у ячейки поля не только одна буква данных имеется, а ещё другие свойства, в этом случае также удобнее хранить каждую ячейку своей строкой.


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.