Вставить повторяющиеся номера MySQL таблицы - PullRequest
0 голосов
/ 23 мая 2018

У меня есть 100 000 строк данных в моей таблице, все, что я хотел сделать, это вставить числа для каждой строки.Но дело в том, что я хочу вставить номер до 24. В 25-м ряду он должен снова начинаться с 1 до 48 и так далее!Может ли кто-нибудь помочь мне в этом!

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Вы можете попробовать что-то вроде этого:

DECLARE @size AS INT =0
DECLARE @id AS INT

WHILE (@size<100000)
BEGIN
    SET @id = ( @size % 24 ) + 1;
    INSERT INTO <table> VALUES (@id , values...) 
    SET @size = @size+1
END

Если вы хотите обновить существующую таблицу, просто используйте запрос UPDATE вместо INSERT

0 голосов
/ 23 мая 2018

Похоже, что оператор по модулю / модулю может обработать эту операцию для вас.

SELECT id % 24 FROM table

или

SELECT (id % 24) + 1 FROM table

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

MySQL включает специальную функцию MOD(), которая также принимает параметры, если это полезно.

Modulo operation. Returns the remainder of N divided by M.


mysql> SELECT MOD(234, 10);
        -> 4 
mysql> SELECT 253 % 7;
        -> 1 
mysql> SELECT MOD(29,9);
        -> 2 
mysql> SELECT 29 MOD 9;
        -> 2

https://dev.mysql.com/doc/refman/8.0/en/mathematical-functions.html#function_mod

...