SQL UPDATE

Материал из Iknow
Перейти к навигации Перейти к поиску

Замена дилера по признаку населённого пункта!

В данном примере: settlementid = 1 (ID Нас. Пункта), usersgroupid = 12 (ID Дилера)

UPDATE `usersgroups_users` SET `usersgroups_users`.`usersgroupid` = 12 WHERE `usersgroups_users`.`uid` IN (SELECT `usersall`.`uid` FROM `usersall` LEFT JOIN `lanes_houses` ON `usersall`.`houseid` = `lanes_houses`.`houseid` LEFT JOIN `lanes` ON `lanes_houses`.`laneid` = `lanes`.`laneid` WHERE `lanes`.`settlementid` = 1);

Подливание срока действия скретч карты, по признаку серии карт!

SET expired = новый срок действия, status = a (статус активная).

UPDATE `mikbill`.`mod_cards_cards` SET `expired` = '2020-12-31' WHERE `series` LIKE '1045' AND `expired` = '2018-12-31' AND `status` = 'a';


Продевание срока действия единичной карты

mod_cards_cards.cards_id = ID карты

UPDATE `mikbill`.`mod_cards_cards` SET `expired` = '2015-12-31' WHERE `mod_cards_cards`.`cards_id` =73216;

Найти пользователей у кого моб. номер из 10 символов, начинается с 9 => добавить 7 в начале

UPDATE `users` SET `users`.`sms_tel` = CONCAT('7',`users`.`sms_tel`) WHERE LENGTH( `users`.`sms_tel` )=10 AND `users`.`sms_tel` LIKE '9%' ORDER BY `users`.`sms_tel` ASC

Перевод абонентов в субпровайдеры по нас. пункту

Вариант 1

'Сначала удалим из других субпровайдеров на всякий случай:'

DELETE FROM `usersgroups_users` WHERE `usersgroups_users`.`uid` IN (SELECT `usersall`.`uid` FROM `usersall` LEFT JOIN `lanes_houses` ON `usersall`.`houseid` = `lanes_houses`.`houseid` LEFT JOIN `lanes` ON `lanes_houses`.`laneid` = `lanes`.`laneid` WHERE `lanes`.`settlementid` = 1)

'Затем только добавляем:'

INSERT INTO `mikbill`.`usersgroups_users` (`uid`, `usersgroupid`)(SELECT `usersall`.`uid` , 3 FROM `usersall` LEFT JOIN `lanes_houses` ON `usersall`.`houseid` = `lanes_houses`.`houseid` LEFT JOIN `lanes` ON `lanes_houses`.`laneid` = `lanes`.`laneid` WHERE `lanes`.`settlementid` = 1);

'где:'

WHERE `lanes`.`settlementid` = 1 - id населенного пункта (1)

SELECT `usersall`.`uid` , 3 - id субпровайдера (3)

Перевести абонентов одного субпровайдера к другому субпровайдеру по признаку нас. пункта

То есть всех абонентов определенного населенного пункта, если они были у других субпровайдеров, переместить указанному субпровайдеру.

UPDATE `usersgroups_users` SET `usersgroups_users`.`usersgroupid` = 3 WHERE `usersgroups_users`.`uid` IN (SELECT `usersall`.`uid` FROM `usersall` LEFT JOIN `lanes_houses` ON `usersall`.`houseid` = `lanes_houses`.`houseid` LEFT JOIN `lanes` ON `lanes_houses`.`laneid` = `lanes`.`laneid` WHERE `lanes`.`settlementid` = 2);

'где:'

WHERE `lanes`.`settlementid` = 2 - id населенного пункта (id2)

SET `usersgroups_users`.`usersgroupid` = 3 - id субпровайдера (id3) которому хотим переместить нас. пункт (id2)

Сгенерировать пароли абонентам у которых они отсутствую.

Символьно-цифровой. Пример пароля: 9911e7bf87

UPDATE `users` SET `password` = substring(MD5(RAND()) from 1 for 10) WHERE `users`.`password` = ' ';

Цифровой. Пример пароля: 1258005957

UPDATE `users` SET `password` = substring(FLOOR(RAND()* 9999999999999)from 1 for 10) WHERE `users`.`password` = ' ';