MySQL UPDATE одним запросом если в записи есть разделитель
Здравствуйте!
Существует ли возможность UPDATE без начального SELECT если поле содержит разделитель? Т.е. запись в таблице имеет вид "XXX|YYYY", мне надо к YYY прибавить новое значение, при этом ХХХ не трогая. Пример. Было "777|0.123" Надо к 0.123 добавить новое значение переменной $new (пусть будет 1), чтобы получилось "777|1.123" Есть ли возможность это сделать UPDATE одним запросом? Спасибо. |
Цитата:
|
Да такой тип данных хранится во всех базах наших сайтов изначально. Используется редко поэтому и через разделитель, чтобы не занимать 2 ячейки таблицы.
Наверное зря я спросил. Просто сейчас дописываю модуль и решил ради интереса найти решение одним запросом. Экономии мало конечно, учитывая что данный запрос редкий. Просто интересно стало - как это можно реализовать. |
Можно, если очень редко, длина строкового значения фиксирована и это одна запись:
'UPDATE table SET field = INSERT(field, 5, 5, SUBSTRING(field, 5)+'.$add.')' Когда думают, что "через разделитель, чтобы не занимать 2 ячейки таблицы", это экономно, круто, тогда и попадают в самые неприятные ситуации. В MySQL нет реализации замены по рег. выражению, есть только поиск по нему. |
Цитата:
|
Цитата:
Значит получайте как две подстроки до и после разделителя, соединяя затем после модификации второй. |
Часовой пояс GMT +3, время: 04:38. |