Unico Опубликовано 5 августа, 2021 Поделиться Опубликовано 5 августа, 2021 Помогите, пожалуйста, чайнику. У меня старый форум. Делаются почтовые рассылки. И за годы скопилась ни одна тысяча невалидных емейлов. Список этих невалидных емейлов имеется. Мне нужно отписать их от рассылки, а то яндекс тут кое-что изменил, и письма туда доходить стали сложнее, когда невалидных мыл много. То есть есть емейлы [email protected], [email protected], [email protected] Нужно в таблице ibf_members найти все ID пользователей этих емейлов и заменить им всем в поле allow_admin_mail значение с "1" на "0". Не подскажете, какая тут sql-команда тут может быть? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Rakot Опубликовано 6 августа, 2021 Поделиться Опубликовано 6 августа, 2021 Unico есть способ проще, если не знаешь sql-запросы, сам таким пользуюсь, есть программа для работы с sql, называется navicat, так вот, работает по принципу Ctrl+C, на "0", а в этом обработчике выделяешь нужное количество строк, нажимаешь Ctrl+V, и применить, запрос будет обработан автоматически Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
by_ix Опубликовано 6 августа, 2021 Поделиться Опубликовано 6 августа, 2021 UPDATE `ibf_members` SET `allow_admin_mail` = 0 WHERE `mails` in ('mail1' , 'mail2' , 'mail3'); возможно, есть ещё проще запрос. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 6 августа, 2021 Поделиться Опубликовано 6 августа, 2021 Проще скриптом (создать файлик в корневой директории, назвать, например, 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)); } } by_ix, alexis, Respected и 1 другой 4 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Unico Опубликовано 7 августа, 2021 Автор Поделиться Опубликовано 7 августа, 2021 Спасибо. Буду смотреть Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Zero108 Опубликовано 30 сентября, 2022 Поделиться Опубликовано 30 сентября, 2022 (изменено) Никак не пойму, как обновить данные в таблице. Например, поле price = 2000,00. Нужно, чтобы поле price = 2000. Что-то вида: UPDATE `b_catalog_price` SET `price`= substring_index(`price`, 0) where `PRODUCT_ID` = 6935; Поправьте, кто разбирается, запрос, чтобы убрать все цифры после запятой вместе с запятой. Изменено 30 сентября, 2022 пользователем Zero108 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 30 сентября, 2022 Поделиться Опубликовано 30 сентября, 2022 (изменено) UPDATE `b_catalog_price` SET `price`=SUBSTRING_INDEX(`price`, ',', 1) where `PRODUCT_ID` = 6935; Изменено 30 сентября, 2022 пользователем Desti by_ix 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.