2015-09-18 4 views
0

Это, пожалуй, довольно уникальный случай использования, но у меня есть большая (60 000 записей) таблица, в которой мне нужно провести чистку весны.Символы «Переместить» от конца поля до начала

Главное, что мне нужно сделать, это нормализовать соглашение об именах моих товаров. Некоторые из них: Матрица, а некоторые - Матрица,. Некоторые из них - Матрица, (15).

Я знаю, как УДАЛИТЬ строку «,», но мне хотелось бы переместить слово в начало и удалить запятую и пробел. Я сделал несколько сотен вручную, но это утомительно.

Любые идеи? У меня есть резервная копия!

ответ

1

Вы имеете в виду, что у вас есть значение «Матрица, The» в столбце, на связке записей и хотите изменить их на «Матрицу»? Если да, то почему бы просто не сделать

update mytable set title = "The Matrix" where title = "Matrix, The"; 

или более общим для любого заголовка, где «The» происходит в конце

update mytable set title = CONCAT("The ", LEFT(title, LENGTH(title) - 5)) where right(title, 5) = ", The"; 

или даже более общем случае, для любого заголовка с запятой в нем

update mytable set title = CONCAT(RIGHT(title, LENGTH(title)-LOCATE(", ", title) - 1), " ", LEFT(title, LOCATE(", ", title) - 1)) where LOCATE(", ", title) > 0; 

Я бы запустить этот последний как выбрать первый, просто чтобы визуально подтвердить изменения:

select title, CONCAT(RIGHT(title, LENGTH(title)-LOCATE(", ", title) - 1), LEFT(title, LOCATE(", ", title) - 1)) from mytable where LOCATE(", ", title) > 0; 
+0

Это может быть обработано более общим для обработки записей _all_, содержащих запятую в этом столбце. – arkascha

+0

yes - update mytable set title = CONCAT («The», LEFT (название, LENGTH (название) - 5)), где right (title, 5) = ", The"; – AgapwIesu

+0

Отличная работа. Первый пример отлично работает для всех титров * end * in ", The", хотя не работает, если есть другие символы после примера ** Matrix, The (15) **. Ваш третий пример дает следующие результаты: 'Оперативный, The: No One Lives Forever' становится', The: No One Lives ForeverOperative' –

Смежные вопросы