Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MySQL - UPDATE заданной позиции в строке

Ответить
Настройки темы
MySQL - UPDATE заданной позиции в строке

Пользователь


Сообщения: 78
Благодарности: 5

Профиль | Отправить PM | Цитировать


День добрый!

Подскажите кто знает, по MySQL гуглил на тему SUBSTRING(), REPLACE() - но четкого ответа не нашел.

Есть таблица settings, в ней поле (VARCHAR) matrix. Пример этого поля: 100011001000. Ну, в таком виде настройки хранятся тоже.
Стоит задача делать UPDATE допустим 4-го символа этой строки, не затрагивая соседних, причем хоть 1 строки хоть всех - по условию WHERE.

Я конечно мог бы их последовательно извлекать-обновлять все требуемые, но зачем если это может сам SQL?

Отправлено: 07:25, 09-06-2016

 

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата evpu:
Стоит задача делать UPDATE допустим 4-го символа этой строки, не затрагивая соседних, причем хоть 1 строки хоть всех - по условию WHERE. »
Никак. Обновлять можно только поле целиком. Поэтому нужно взять это поле, выделить из него три начальных символа и оставшиеся, начиная с пятого. Полученное объединить в новую строку.

Пример:
Скрытый текст
Код: Выделить весь код
mysql> select * from MyTable;
+------+--------------+
| ID   | Matrix       |
+------+--------------+
|    1 | aaaaaa       |
|    2 | bbbbbb       |
|    3 | cccccc       |
|    4 | 100011001000 |
|    5 | dddddd       |
+------+--------------+
5 rows in set (0.00 sec)

mysql> update MyTable set Matrix=concat(left(Matrix, 3), '9', substring(Matrix, 5));
Query OK, 5 rows affected (0.04 sec)
Rows matched: 5  Changed: 5  Warnings: 0

mysql> select * from MyTable;
+------+--------------+
| ID   | Matrix       |
+------+--------------+
|    1 | aaa9aa       |
|    2 | bbb9bb       |
|    3 | ccc9cc       |
|    4 | 100911001000 |
|    5 | ddd9dd       |
+------+--------------+
5 rows in set (0.00 sec)

mysql>
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:40, 09-06-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 78
Благодарности: 5

Профиль | Отправить PM | Цитировать


Благодарю!

Отправлено: 17:46, 09-06-2016 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MySQL - UPDATE заданной позиции в строке

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Windows Phone продолжает терять позиции OSZone News Новости и события Microsoft 0 08-04-2016 10:30
Статистика Microsoft показывает прочные позиции Windows 7 OSZone News Новости и события Microsoft 0 10-02-2016 18:30
Темы и Стили - Изменение позиции Progress Bar'а dmistof Оформление Windows 11/ 10 / 8 / 7 / Vista 5 27-05-2015 08:17
Обзор рынка смартфонов США: Apple укрепляет позиции OSZone News Новости информационных технологий 1 20-01-2014 12:38
Google сдаёт позиции в Китае OSZone News Новости информационных технологий 0 31-03-2011 07:30




 
Переход