在数据库中更新列,其中max值为php mysql

时间:2015-01-21 00:32:11

标签: php mysql

我在这里遇到了问题。即时更新名称,其中B的价值最大。

所以结果是

B  | name
---|------
 1 | 
 2 | 
 3 | YES

但是当列B更改值时,问题是列名称,行值3仍然具有值。

B  | name
---|------
 1 | 
 4 | YES
 3 | YES  

结果应该是。

B  | name
---|------
 1 | 
 4 | YES
 3 |   

如果

B  | name
---|------
 0 | 
 0 | 
 0 |  

然后

B  | name
---|------
 0 | 
 0 | 
 0 |  
如果

B  | name
---|------
 4 | 
 4 | 
 2 | 

然后

B  | name
---|------
 4 | YES
 4 | YES
 2 |   

这就是我想要的。

我只使用这个简单的代码。

$sql3 = "UPDATE products SET name='YES' ORDER BY B DESC";

2 个答案:

答案 0 :(得分:0)

我想你想要更新表中B列最高值的行?你肯定需要一个" WHERE"子句,但您还需要知道该列中的最高值。为什么不首先查询数据库以从列B中检索最高值?

$maxvalue = "SELECT `B` FROM products ORDER BY `B` DESC LIMIT 1"

然后插入数据库WHERE列B等于这个值?

"UPDATE products SET name='YES' WHERE B = $maxvalue"

这不是完整的代码,只是概念性的。我会清理它并编辑这个答案......

答案 1 :(得分:-1)

您必须每次都运行UPDATE products set name = '';

UPDATE products set name = 'YES'
WHERE B > 0
ORDER BY B DESC