помогите сделать запрос-чтобы удалить ноль вначале

Статус
В этой теме нельзя размещать новые ответы.

DoctorWhoAreYou

Гуру форума
Регистрация
31 Янв 2007
Сообщения
332
Реакции
98
В общем у меня есть таблица, в ней колонка с цифрами- типа 0830.

надо сделать так, чтобы если есть в начале ноль- он удалился ( ноль не всегда)

Посоветовали так- но пока не пробовал, вроде как-то странно.. что плюс ноль..

update `products` set `products_model` = `products_model` +0

то есть внутри products колонка products_model в которой надо значения переделать ( убрать ноль, если он вначале!)

то есть было 0825, а стало 825..и так далее.
 
В общем у меня есть таблица, в ней колонка с цифрами- типа 0830.

надо сделать так, чтобы если есть в начале ноль- он удалился ( ноль не всегда)

Посоветовали так- но пока не пробовал, вроде как-то странно.. что плюс ноль..

update `products` set `products_model` = `products_model` +0

то есть внутри products колонка products_model в которой надо значения переделать ( убрать ноль, если он вначале!)

то есть было 0825, а стало 825..и так далее.

Вообще, есть вариант сначало сделать бекап, а если и его стрёмно делать- выполни запрос
SELECT `products_model` +0 FROM `products`
в пхпадмине и посмотри на результат

просто сейчас у тебя поле текстовое. Если к строке "0825" прибавить что-то, то мускул преобразует сткоку в число уже без нуля, и прибавит, в нашем случае 0.
 
Вообще есть такой вариант update `products` set `products_model` CASE WHEN LEFT(products_model,1) = '0' THEN SUBSTRING(products_model FROM 2) ELSE products_model END Но опять такие сделай сначала селект
 
проблема была решена вот таким хитрым запросом:


update products set products_model =trim(products_model);
update products set products_model=substring(products_model, 2, 255) where substring(products_model, 1, 1)='0' ;
update products set products_model=substring(products_model, 2, 255) where substring(products_model, 1, 1)='0' ;
update products set products_model=substring(products_model, 2, 255) where substring(products_model, 1, 1)='0' ;
update products set products_model=substring(products_model, 2, 255) where substring(products_model, 1, 1)='0' ;
update products set products_model=substring(products_model, 2, 255) where substring(products_model, 1, 1)='0' ;
 
А зачем строку
update products set products_model=substring(products_model, 2, 255) where substring(products_model, 1, 1)='0' ;
дублировать 5 раз? И одного хватит.
 
Прошу простить меня за следующее, но ...
Код:
update `products` set `products_model` = `products_model` * 1
данный запрос действую на текстовые поля, если у вас поле цифровое и оно отмечено как "UNSIGNED ZEROFILL" то только при выборке
Код:
select `products_model`*1 ...
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху