Posted 5 августа, 20213 yr comment_171047 Помогите, пожалуйста, чайнику. У меня старый форум. Делаются почтовые рассылки. И за годы скопилась ни одна тысяча невалидных емейлов. Список этих невалидных емейлов имеется. Мне нужно отписать их от рассылки, а то яндекс тут кое-что изменил, и письма туда доходить стали сложнее, когда невалидных мыл много. То есть есть емейлы [email protected], [email protected], [email protected] Нужно в таблице ibf_members найти все ID пользователей этих емейлов и заменить им всем в поле allow_admin_mail значение с "1" на "0". Не подскажете, какая тут sql-команда тут может быть? Link to comment https://ipbmafia.ru/topic/23381-ne-pomozhete-s-mysql-zaprosom/ Share on other sites Больше вариантов
6 августа, 20213 yr comment_171056 Unico есть способ проще, если не знаешь sql-запросы, сам таким пользуюсь, есть программа для работы с sql, называется navicat, так вот, работает по принципу Ctrl+C, на "0", а в этом обработчике выделяешь нужное количество строк, нажимаешь Ctrl+V, и применить, запрос будет обработан автоматически Link to comment https://ipbmafia.ru/topic/23381-ne-pomozhete-s-mysql-zaprosom/?&do=findComment&comment=171056 Share on other sites Больше вариантов
6 августа, 20213 yr comment_171058 UPDATE `ibf_members` SET `allow_admin_mail` = 0 WHERE `mails` in ('mail1' , 'mail2' , 'mail3'); возможно, есть ещё проще запрос. Link to comment https://ipbmafia.ru/topic/23381-ne-pomozhete-s-mysql-zaprosom/?&do=findComment&comment=171058 Share on other sites Больше вариантов
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)); } } Link to comment https://ipbmafia.ru/topic/23381-ne-pomozhete-s-mysql-zaprosom/?&do=findComment&comment=171064 Share on other sites Больше вариантов
7 августа, 20213 yr Author comment_171112 Спасибо. Буду смотреть Link to comment https://ipbmafia.ru/topic/23381-ne-pomozhete-s-mysql-zaprosom/?&do=findComment&comment=171112 Share on other sites Больше вариантов
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 Link to comment https://ipbmafia.ru/topic/23381-ne-pomozhete-s-mysql-zaprosom/?&do=findComment&comment=186763 Share on other sites Больше вариантов
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 Link to comment https://ipbmafia.ru/topic/23381-ne-pomozhete-s-mysql-zaprosom/?&do=findComment&comment=186764 Share on other sites Больше вариантов
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.