![]() |
Задавайте вопросы, мы ответим
Вы не зашли.
Допустим после выполнения запроса получаю данные в виде таблицы
Товар Цена
Конфеты "Ваврапр" 320
Конфеты "Фпаппвап" 540
Вафли "Мрпаер" 200
Вафли "Упиипи" 300
Помидоры китайские 100
Что и куда надо подставить в запрос чтобы получать Конфеты вместо Конфеты "Ваврапр" и Вафли вместо Вафли "Мрпаер" а помидоры оставить неизменными? К бд доступ в режиме чтения.
Неактивен
Проще всего найти первую кавычку (или первый пробел) - и вернуть то, что до искомого символа. см
http://dev.mysql.com/doc/refman/5.0/en/ … ion_locate
и
http://dev.mysql.com/doc/refman/5.0/en/ … _substring
Неактивен
Нашел функцию REPLACE, но не смог подставить её куда надо. Если запрос сейчас выглядит типа
Неактивен
Не думаю, что тут replace нужен, простого update вполне хватит.
Ниже привожу пример реализации замены.
mysql> create table t_6303(id int primary key auto_increment, val varchar(255)); Query OK, 0 rows affected (0.25 sec) mysql> insert into t_6303(val) values('With "quotes"'),('Without quotes'); Query OK, 2 rows affected (0.00 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> select * from t_6303; +----+----------------+ | id | val | +----+----------------+ | 1 | With "quotes" | | 2 | Without quotes | +----+----------------+ 2 rows in set (0.00 sec) mysql> select if( 0 <> locate('"', val), substring(val, 1, locate('"',val) -1 ) , val ) from t_6303; +---------------------------------------------------------------------------+ | if( 0 <> locate('"', val), substring(val, 1, locate('"',val) -1 ) , val ) | +---------------------------------------------------------------------------+ | With | | Without quotes | +---------------------------------------------------------------------------+ 2 rows in set (0.00 sec)
Неактивен
Всё дело не в кавычках. Нужно заменить Конфеты* на Сироп, а Вафли* на "Утиные истории". Помидоры пусть остаются китайскими. Цель - получение однотипных данных для сводных таблиц.
Неактивен
Неактивен
Огромное всем спасибо, разобрался.
Неактивен