每 10 行自动递增
auto increment every 10 rows
我正在使用 PHP。我将在我的数据库中创建一个具有值的列,例如 1
。我想将此值设置为每次经过 10 行时自动递增:
换句话说:
1st row will have the value = 1
2nd row will have the value = 1
........
........
10th row will have the value = 1
11th row the value will auto increment and change to be = to 2
这是适合您的解决方案
假设您有一个名为 table1
的 table 并且 table 具有以下结构
CREATE TABLE `table1` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
请注意 id
列是自动递增的
下面的查询会给你想要的结果
select a.id,FLOOR((a.id-1)/10)+1 as calculated_value from table1 a
在结果中calculated_value
会给你结果。
如果你有兴趣,一些额外的信息
假设您担心采用自增列进行计算存在风险,那么您可以使用以下
SELECT t.id,t.name ,(@num:=@num+1) AS i,FLOOR((@num-1)/10)+1
as calculated_value FROM table1 t CROSS JOIN (SELECT @num:=0) AS
dummy ORDER BY id;
我正在使用 PHP。我将在我的数据库中创建一个具有值的列,例如 1
。我想将此值设置为每次经过 10 行时自动递增:
换句话说:
1st row will have the value = 1
2nd row will have the value = 1
........
........
10th row will have the value = 1
11th row the value will auto increment and change to be = to 2
这是适合您的解决方案
假设您有一个名为 table1
的 table 并且 table 具有以下结构
CREATE TABLE `table1` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
请注意 id
列是自动递增的
下面的查询会给你想要的结果
select a.id,FLOOR((a.id-1)/10)+1 as calculated_value from table1 a
在结果中calculated_value
会给你结果。
如果你有兴趣,一些额外的信息
假设您担心采用自增列进行计算存在风险,那么您可以使用以下
SELECT t.id,t.name ,(@num:=@num+1) AS i,FLOOR((@num-1)/10)+1
as calculated_value FROM table1 t CROSS JOIN (SELECT @num:=0) AS
dummy ORDER BY id;