Jump to content

как одним mysql запросом поставить количество в наличии всем товарам в ноль?


Recommended Posts

как одним mysql запросом поставить количество в наличии всем товарам в ноль?

нужно для актуализации того- что из ассортимента ушло, так как остатки обновляются онлайн..

соответственно товары которых нет- просто не обновятся в дальнейшем по крону.

Link to post
Share on other sites
support
2 часа назад, geval сказал:

как одним mysql запросом поставить количество в наличии всем товарам в ноль?

нужно для актуализации того- что из ассортимента ушло, так как остатки обновляются онлайн..

соответственно товары которых нет- просто не обновятся в дальнейшем по крону.

update products set products_quantity = 0 where produsts_status = 1;

Примерно так

Link to post
Share on other sites

а можно ли сконструировать такой запрос, чтобы заданным товарам ( по артикулу) задать нулевые остатки..?

скажем артикулы 101, 102, 103 через запятую и т.д.

именно артикулы ( которые указываются на карточке товара), потому что есть еще какой-то внутренний номер товара, это не про это..

Link to post
Share on other sites
support
1 час назад, geval сказал:

а можно ли сконструировать такой запрос, чтобы заданным товарам ( по артикулу) задать нулевые остатки..?

скажем артикулы 101, 102, 103 через запятую и т.д.

именно артикулы ( которые указываются на карточке товара), потому что есть еще какой-то внутренний номер товара, это не про это..

Да.

update products set products_quantity = 0 where produsts_model in (kod1,kod2,kod3);

kod1

kod2

kod3

Это перечисление артикулов товара через запятую.

Link to post
Share on other sites

спасибо, весьма ценная инфа.

 

тогда еще такой вопрос, есть артикулы вида 0112, 0535, 0455 и т.д, то есть 0 в начале, а часть артикулов нормальные то есть 110 120 и т.д, можно ли как-то одним запросом убрать нули из артикулов в базе магазина?

то есть в

 produsts_model 
Link to post
Share on other sites
support
1 час назад, geval сказал:

спасибо, весьма ценная инфа.

 

тогда еще такой вопрос, есть артикулы вида 0112, 0535, 0455 и т.д, то есть 0 в начале, а часть артикулов нормальные то есть 110 120 и т.д, можно ли как-то одним запросом убрать нули из артикулов в базе магазина?

то есть в


 produsts_model 

Примерно так:

update products set products_model=SUBSTRING(products_model,REGEXP_INSTR(products_model,'[1-9]')) 

Ищите в гугле примеры.

Ну и REGEXP_INSTR вроде как работает начиная с mySQL 8

Link to post
Share on other sites
4 минуты назад, support сказал:

Примерно так:


update products set products_model=SUBSTRING(products_model,REGEXP_INSTR(products_model,'[1-9]')) 

Ищите в гугле примеры.

Ну и REGEXP_INSTR вроде как работает начиная с mySQL 8

Спасибо!

Link to post
Share on other sites

проверил, на 8й версии сработало ( на хостингах она редко бывает), так что кому актуально- берет таблицу products пихаем в openserver последней версии, там mysql 8 есть, и вуаля.. потом обратный процесс.
на реальном магазине сработало, убрало нули в начале артикула

Link to post
Share on other sites
  • 2 weeks later...

UPDATE products SET products_model=TRIM(LEADING '0' FROM products_model) WHERE products_model LIKE'0%';

срабатывает на любой версии mysql для удаление нулей  в начале артикула

Link to post
Share on other sites
×
×
  • Create New...