Как реализовать скрипт

152
15 декабря 2016, 15:46

Помогите написать цикл для добавления множества пользователей разом вот метод добавления юзера

insert into mailbox values ('?', '?', '?', '?', 0, '?', '?', now(), now(), ?)

и таких пользователей мне нужно около 3 тысяч, как реализовать цикл в скрипте sql

Answer 1

скрипт написанный на чем угодно, главное чтобы работал

Значит покажу, как это можно сделать на php

имена admin1,admin2,admin3... 3 тысячи

Предположу, что это строка, а не массив

$str = 'admin1,admin2,admin3,admin4,admin5,admin6,admin7,admin100500';
$user_arr = explode(',',$str);
$parts = array_chunk($user_arr,3); // можно разбить на несколько частей, напр. по 500.
foreach($parts as $p){
    $query = "INSERT INTO `mailbox` VALUES ";
    foreach($p as $val){
        $query .= "('".$val."@bar.ru', 'password', '".$val."', '".$val."@@bar.ru/', 0, '".$val."', 'bar.ru', now(), now(), 1),";
    }
    $query = substr($query, 0, -1);
    // тут запрос на запись в БД
}

Что получится - можно глянуть тут (нажать RUN или F9). Только вместо выполнения запроса - выводим на эран.

Answer 2

Можно сгенерировать последовательность, например, так:

SELECT CONCAT('user', 4*4*4*A + 4*4*B + 4*C + D + 1)
FROM
(SELECT 0 AS A UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) AS A CROSS JOIN
(SELECT 0 AS B UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) AS B CROSS JOIN
(SELECT 0 AS C UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) AS C CROSS JOIN
(SELECT 0 AS D UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) AS D
order by 4*4*4*A + 4*4*B + 4*C + D + 1

Для 3000 достаточно будет 10х10х10х3.

READ ALSO
Где лучше сортировать данные

Где лучше сортировать данные

Всем приветГде лучше (быстрее) сортировать данные в mysql или php ?

135
Как подключиться к MySQL через java?

Как подключиться к MySQL через java?

Как подключится к MySQL через java? И как сделать добавление запроса?

140
Выбрать большое кол-во id с БД

Выбрать большое кол-во id с БД

Как выбрать 4 определенных id с БДВ таком смысле

127
CURRENT_TIMESTAMP для MySQL

CURRENT_TIMESTAMP для MySQL

Если поле имеет формат DATE можно сделать как то auto insert текущей даты силами мускула как CURRENT_TIMESTAMP для TIMESTAMP?

138