我想抓取一行的值,删除它的最后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。
答案 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