php - 更新第二行之后的所有行,通过向这些行添加 1

标签 php mysql

我有一个这样的表:

id  subject        position         visible

1   Home               1               1
2   About us           2               1
3   Our partners       3               1
18  Products           4               1
19  Extra              5               0

我想在 position=2 之后的所有行中添加数字 1,如下所示:

id  subject        position         visible

1   Home               1               1
2   About us           2               1
3   Our partners       4               1
18  Products           5               1
19  Extra              6               0

我这样试过,但是不行:

$row=mysql_query("SELECT * FROM table");
$count=mysql_num_rows($row);
$position=3;
$add=($position+1);
while($position<=$count)
{
    $sql="UPDATE subjects SET position=$add WHERE position=$position";
    mysql_query($sql);
    $add++;
    $position++;
}

应用上述代码后,我的表格如下所示:

id  subject        position         visible

1   Home               1               1
2   About us           2               1
3   Our partners       6               1
18  Products           6               1
19  Extra              6               0

有什么解决办法吗?

最佳答案

为什么不只是:

UPDATE subjects SET position=position+1 WHERE position>2

关于php - 更新第二行之后的所有行,通过向这些行添加 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10095202/

相关文章:

php - 脚本头/信号 11 过早结束

php - Nginx 作为长轮询时的反向代理

php session 在登录表单上对用户进行身份验证

Mysql 与 NoSql 快速搜索

mysql - 重新使用丢失的 AUTO INCREMENT 值

mysql - PhpMyAdmin:一个表中的 MySql 字段引用另一表中的字段

php - Docker 使用本地数据库作为卷

php - 在一个 HTTP 请求中下载多个文件

mysql - Grails 插入不带时间的日期

mysql - 合并3张表,限制1张表需要多个字段