geval 3 Posted April 8, 2022 Report Share Posted April 8, 2022 как одним mysql запросом поставить количество в наличии всем товарам в ноль? нужно для актуализации того- что из ассортимента ушло, так как остатки обновляются онлайн.. соответственно товары которых нет- просто не обновятся в дальнейшем по крону. Link to post Share on other sites
support 447 Posted April 8, 2022 Report Share Posted April 8, 2022 2 часа назад, geval сказал: как одним mysql запросом поставить количество в наличии всем товарам в ноль? нужно для актуализации того- что из ассортимента ушло, так как остатки обновляются онлайн.. соответственно товары которых нет- просто не обновятся в дальнейшем по крону. update products set products_quantity = 0 where produsts_status = 1; Примерно так Link to post Share on other sites
geval 3 Posted April 9, 2022 Author Report Share Posted April 9, 2022 а можно ли сконструировать такой запрос, чтобы заданным товарам ( по артикулу) задать нулевые остатки..? скажем артикулы 101, 102, 103 через запятую и т.д. именно артикулы ( которые указываются на карточке товара), потому что есть еще какой-то внутренний номер товара, это не про это.. Link to post Share on other sites
support 447 Posted April 9, 2022 Report Share Posted April 9, 2022 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
geval 3 Posted April 11, 2022 Author Report Share Posted April 11, 2022 спасибо, весьма ценная инфа. тогда еще такой вопрос, есть артикулы вида 0112, 0535, 0455 и т.д, то есть 0 в начале, а часть артикулов нормальные то есть 110 120 и т.д, можно ли как-то одним запросом убрать нули из артикулов в базе магазина? то есть в produsts_model Link to post Share on other sites
support 447 Posted April 11, 2022 Report Share Posted April 11, 2022 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
geval 3 Posted April 11, 2022 Author Report Share Posted April 11, 2022 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
geval 3 Posted April 11, 2022 Author Report Share Posted April 11, 2022 проверил, на 8й версии сработало ( на хостингах она редко бывает), так что кому актуально- берет таблицу products пихаем в openserver последней версии, там mysql 8 есть, и вуаля.. потом обратный процесс. на реальном магазине сработало, убрало нули в начале артикула Link to post Share on other sites
support 447 Posted April 11, 2022 Report Share Posted April 11, 2022 Хорошо, что разобрались... Link to post Share on other sites
geval 3 Posted April 21, 2022 Author Report Share Posted April 21, 2022 UPDATE products SET products_model=TRIM(LEADING '0' FROM products_model) WHERE products_model LIKE'0%'; срабатывает на любой версии mysql для удаление нулей в начале артикула Link to post Share on other sites
Recommended Posts