Перейти к содержанию

Не поможете с mysql-запросом?


Unico

Рекомендуемые сообщения

Помогите, пожалуйста, чайнику. У меня старый форум. Делаются почтовые рассылки. И за годы скопилась ни одна тысяча невалидных емейлов. Список этих невалидных емейлов имеется. Мне нужно отписать их от рассылки, а то яндекс тут кое-что изменил, и письма туда доходить стали сложнее, когда невалидных мыл много.

То есть есть емейлы [email protected], [email protected], [email protected]

Нужно в таблице ibf_members найти все ID пользователей этих емейлов и заменить им всем в поле allow_admin_mail значение с "1" на "0".

Не подскажете, какая тут sql-команда тут может быть?

Ссылка на комментарий
Поделиться на другие сайты

Unico есть способ проще, если не знаешь sql-запросы, сам таким пользуюсь, есть программа для работы с sql, называется navicat, так вот, работает по принципу Ctrl+C, на "0", а в этом обработчике выделяешь нужное количество строк, нажимаешь Ctrl+V, и применить, запрос будет обработан автоматически

Ссылка на комментарий
Поделиться на другие сайты

UPDATE `ibf_members` SET
`allow_admin_mail` = 0 WHERE `mails` in ('mail1' , 'mail2' , 'mail3');

возможно, есть ещё проще запрос. 

Ссылка на комментарий
Поделиться на другие сайты

Проще скриптом (создать файлик в корневой директории, назвать, например, 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));
 }
}

 

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...

Никак не пойму, как обновить данные в таблице. 

Например, поле price = 2000,00. Нужно, чтобы поле price = 2000.

Что-то вида:

UPDATE `b_catalog_price` SET `price`= substring_index(`price`, 0) where `PRODUCT_ID` = 6935;

Поправьте, кто разбирается, запрос, чтобы убрать все цифры после запятой вместе с запятой.

Изменено пользователем Zero108
Ссылка на комментарий
Поделиться на другие сайты

UPDATE `b_catalog_price` SET `price`=SUBSTRING_INDEX(`price`, ',', 1) where `PRODUCT_ID` = 6935;

 

Изменено пользователем Desti
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...