抓取行信息并将其值设置为另一个

时间:2017-08-02 15:14:10

标签: php mysqli

我想抓取一行的值,删除它的最后2位数,然后将其设置为另一行。这是我到目前为止所做的。

while($row = mysqli_fetch_assoc($query)) {
     mysqli_query($con, "UPDATE my_table SET another_row = '" . substr($row['first_row'], 0, -2) . "'");
}

表格示例

field1 | field2
100    |  0
200    |  0
5000   |  0

我想将field2设置为`field``的值减去最后2位,所以。

field1 | field2
100    |  1
200    |  2
5000   |  50

但它出于某种原因将行的值设置为0。

1 个答案:

答案 0 :(得分:3)

如果它们是整数,我建议以数学方式进行,并在1个查询中进行操作

UPDATE yourtable
SET field2 = FLOOR(field1/100)
WHERE 1

所以500将是FLOOR(5),它给出5

555将是FLOOR(5.55),这也是5

编辑:我第一次使用round()但是floor()在这里看起来更好

EDIT2:

完成案例的示例field1是一个字符串:

UPDATE yourtable
SET field2 = SUBSTRING(field1, 1, CHAR_LENGTH(field1) - 2)
WHERE 1