Биллинговая система Nodeny
28 Апреля 2024, 14:33:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Заменить все буквенные логины на цифровые sql запрос  (Прочитано 4182 раз)
poxy.
NoDeny
Спец
*

Карма: 10
Offline Offline

Сообщений: 844



Просмотр профиля
« : 21 Августа 2013, 17:38:07 »

Подскажите запрос для замены всех буквенных логинов на цифровые в диапазоне от 1000 до 1500, я так понимаю что б все сразу нужно наверное скриптом делать запросы?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #1 : 22 Августа 2013, 11:06:45 »

На какие именно цифровые? Найти все записи, у которых в логине есть буквы (либо условие "не цифры") в sql просто - там есть регулярные выражения
Записан
poxy.
NoDeny
Спец
*

Карма: 10
Offline Offline

Сообщений: 844



Просмотр профиля
« Ответ #2 : 22 Августа 2013, 12:20:05 »

Есть пачка логинов из букв со старого биллинга, хочу поменять их на числовые (сделать как нодени+ из четырех чисел, для удобства оплаты с указанием логина), поэтому нужно каждый буквенный заменить на любой (не повторяющийся) числовой.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #3 : 22 Августа 2013, 13:18:25 »

Код:
UPDATE users SET name = FLOOR(RAND()*1000) WHERE name NOT REGEXP '[0-9]';
Возможно, придется запустить несколько раз т.к. если вдруг будет дубликат (а число выбирается случайным образом), то изменение прервется т.к. поле name уникальное.  Самый простой способ, я бы не выдумывал иные
Записан
Gosha
Постоялец
***

Карма: 7
Offline Offline

Сообщений: 199


Просмотр профиля
« Ответ #4 : 22 Августа 2013, 13:31:39 »

А может модуль. Зашел клиент. и пока не поменял логин с предложеного в инет не пускать.
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1227

In LAN we trust!

358714596
Просмотр профиля
« Ответ #5 : 22 Августа 2013, 14:28:16 »

Код:
UPDATE users SET name = FLOOR(RAND()*1000) WHERE name NOT REGEXP '[0-9]';
Возможно, придется запустить несколько раз т.к. если вдруг будет дубликат (а число выбирается случайным образом), то изменение прервется т.к. поле name уникальное.  Самый простой способ, я бы не выдумывал иные
лучше сделать логин = ппк
Записан
poxy.
NoDeny
Спец
*

Карма: 10
Offline Offline

Сообщений: 844



Просмотр профиля
« Ответ #6 : 22 Августа 2013, 14:41:05 »

Спасибо, поменял
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!