我正在使用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
答案 0 :(得分:2)
以下是适合您的解决方案
假设您有一个名为table1
的表,该表具有以下结构
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;