2015-07-24 3 views
-5

Я попробовал функцию триммера много раз, чтобы удалить пробелы на столбе, но это не так.Функция функции Mysql не работает

update table_name set column_name= TRIM(column_name) 

какой-либо руководство пожалуйста. enter image description here

+4

'TRIM()' удаляет начальные и конечные пробелы. Вы пытаетесь удалить все пробелы? – vhu

+0

Что значит «это не так». В соответствии с отделкой документации удаляются ведущие/конечные/обе области. Вы пытаетесь удалить пробелы во внутренней части столбца (e.x «John Doe») –

+0

@vhu да или по крайней мере белые пробелы с левой стороны – JavaFan

ответ

3

Почему бы вам просто не сделать SELECT REPLACE(column_name, ' ', '') FROM table_name?

+0

дает желаемый результат, но когда я добавляю, где условие не дало его. – JavaFan

+0

Не уверен, что вы подразумеваете под «когда я добавляю при условии». Можете ли вы изменить свой вопрос с помощью обновления? Или задайте новый вопрос, так как это, кажется, было разрешено. – Tavo

+1

Конечно, это не даст вам. Замена удаляет пробелы из возвращаемых данных, тогда как в предложении where вы сравниваете текущие данные в базе данных (которые имеют пробелы). Вы должны поместить оператор replace/trim в предложение where –

0

Это прекрасно работает для меня.

Попробуйте это,

update yourtablename set price = REPLACE(price, ' ', ''); 

enter image description here

+1

. Я думаю, что вопрос касается данных в столбце, а не имени столбца. –

+0

@kuttyraj Не работает, я пробовал это раньше – JavaFan

+0

@JavaFan Пробовал ли вы это сейчас мое новое решение? Он отлично работает для меня. – kuttyraj

0

Если вы хотите удалить пробелы с обеих левой и правой стороны, trim() должны делать работу за вас.

Вы можете проверить длину возвращаемых значений следующим образом:

select trim(column_name), char_length(trim(column_name)) as length from table_name 

Смотрите эту SQLFiddle демо

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