мы знаем, что мы можем вставить несколько записей одновременно, используя этот запрос:

INSERT INTO `TABLE1` (`First`,`Last`) VALUES ('name1','surname1'),
('name2','surname2'),
('name3','surname3'),
('name4','surname4');

но что, если мы хотим добавить 1000 похожих записей, как указано выше (имя *, фамилия *), нужно ли записывать все записи или мы можем использовать что-то вроде подстановочного знака? или есть другое решение, использующее mysql?

2 ответа2

1

Используйте этот скрипт:

set @a=0;
INSERT INTO `TABLE1` (`First`,`Last`) SELECT
CONCAT('Name',(@a:=@a+1)),CONCAT('Surname',@a)
FROM `information_schema`.`SESSION_VARIABLES` LIMIT 1000;

, где information_schema.SESSION_VARIABLES - любая большая таблица, содержащая не менее 1000 строк.

0
CREATE VIEW binary_view AS SELECT 0 n UNION SELECT 1;

SELECT CONCAT('name',s),CONCAT('surname',s) FROM (
SELECT
    b0.n * POW(2,0) +
    b1.n * POW(2,1) +
    b2.n * POW(2,2) +
    b3.n * POW(2,3) +
    b4.n * POW(2,4) +
    b5.n * POW(2,5) +
    b6.n * POW(2,6) +
    b7.n * POW(2,7) +
    b8.n * POW(2,8) +
    b9.n * POW(2,9) s
FROM
    binary_view b0,
    binary_view b1,
    binary_view b2,
    binary_view b3,
    binary_view b4,
    binary_view b5,
    binary_view b6,
    binary_view b7,
    binary_view b8,
    binary_view b9
HAVING s BETWEEN 1 AND 1000 ) t;

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .