Posted 5 августа, 20213 yr comment_171047 Помогите, пожалуйста, чайнику. У меня старый форум. Делаются почтовые рассылки. И за годы скопилась ни одна тысяча невалидных емейлов. Список этих невалидных емейлов имеется. Мне нужно отписать их от рассылки, а то яндекс тут кое-что изменил, и письма туда доходить стали сложнее, когда невалидных мыл много. То есть есть емейлы [email protected], [email protected], [email protected] Нужно в таблице ibf_members найти все ID пользователей этих емейлов и заменить им всем в поле allow_admin_mail значение с "1" на "0". Не подскажете, какая тут sql-команда тут может быть?
6 августа, 20213 yr comment_171056 Unico есть способ проще, если не знаешь sql-запросы, сам таким пользуюсь, есть программа для работы с sql, называется navicat, так вот, работает по принципу Ctrl+C, на "0", а в этом обработчике выделяешь нужное количество строк, нажимаешь Ctrl+V, и применить, запрос будет обработан автоматически
6 августа, 20213 yr comment_171058 UPDATE `ibf_members` SET `allow_admin_mail` = 0 WHERE `mails` in ('mail1' , 'mail2' , 'mail3'); возможно, есть ещё проще запрос.
6 августа, 20213 yr comment_171064 Проще скриптом (создать файлик в корневой директории, назвать, например, upd.php) Адреса для удаления записать в отдельный файлик emails.txt, один адрес на строку, тоже положить в корень. Вызвать http://ваш домен.ru/upd.php Предупреждаю, все такие операции надо делать только с копией таблицы базы. После преобразования и проверки переименовать таблицы. <?php \define('REPORT_EXCEPTIONS', TRUE); $_SERVER['SCRIPT_FILENAME'] = __FILE__; require_once 'init.php'; \IPS\Session\Front::i(); $h = \fopen("./emails.txt", "r"); $limit = 0; $in = array(); if ($h) { while (!feof($h)) { $a = rtrim(fgets($h, 256)); if($a !== '') { $in[] = $a; $limit++; } if($limit==50) { \IPS\Db::i()->update( 'core_members_copy', array('allow_admin_mails' => 0), \IPS\Db::i()->in('email', $in)); $in = array(); $limit = 0; } } fclose($h); if($limit) { \IPS\Db::i()->update( 'core_members_copy', array('allow_admin_mails' => 0), \IPS\Db::i()->in('email', $in)); } }
30 сентября, 20222 yr comment_186763 Никак не пойму, как обновить данные в таблице. Например, поле price = 2000,00. Нужно, чтобы поле price = 2000. Что-то вида: UPDATE `b_catalog_price` SET `price`= substring_index(`price`, 0) where `PRODUCT_ID` = 6935; Поправьте, кто разбирается, запрос, чтобы убрать все цифры после запятой вместе с запятой. Edited 30 сентября, 20222 yr by Zero108
30 сентября, 20222 yr comment_186764 UPDATE `b_catalog_price` SET `price`=SUBSTRING_INDEX(`price`, ',', 1) where `PRODUCT_ID` = 6935; Edited 30 сентября, 20222 yr by Desti
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.