加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘南站长网 (https://www.0941zz.com/)- 科技、行业物联网、开发、云计算、云管理!
当前位置: 首页 > 数据库 > MySql > 正文

php – 根据另一个值更新最小值 – MySql

发布时间:2020-11-18 12:04:03 所属栏目:MySql 来源:互联网
导读:我有一组信息,我将其爆炸为id,代码和数字.list ($id,$code,$num) = explode(~,$data); 我需要根据最小num的唯一代码将它更新为MySql假设我的前3个请求看起来像id = 9267399 code = 5D:148 num = 64 id = 9267398 code = 5D:186 num = 71 id

我有一组信息,我将其爆炸为id,代码和数字.

list ($id,$code,$num) = explode("~",$data);

我需要根据最小num的唯一代码将它更新为MySql

假设我的前3个请求看起来像

id = 9267399
code = 5D:148
num = 64

id = 9267398
code = 5D:186
num = 71

id = 9267397
code = 5D:122
num = 93

然后我的第4,第5个请求有重复的代码5D:148,具有不同的id和num.

id = 9267402
code = 5D:148
num = 22

id = 9267563
code = 5D:148
num = 5

现在我需要找到重复代码的min(num)并将该记录更新回mysql.我的查询应该是这样的

$sql = "UPDATE table SET id = '9267398',num = '71' WHERE code = '5D:186' ";
$sql = "UPDATE table SET id = '9267397',num = '93' WHERE code = '5D:122' ";
$sql = "UPDATE table SET id = '9267563',num = '5' WHERE code = '5D:148' ";

这里5D:148有3个请求,其中min(num)是5.

我试过找到重复的代码

$temp = array();
foreach ($code as $c) {
    isset($temp[$c]) or $temp[$c] = 0;
    $temp[$c] ++;
}
var_dump($temp); 

这给了我

array(3) {["5D:148"]=> int(3) ["5D:186"]=> int(1) ["5D:122"]=> int(1)}  

我被困在这里如何找到min(num)并根据它运行我的更新查询 最佳答案 循环遍历数组并检查num是否低于前一个数字.

$data数组的示例:

$data = array(
[0] => array('id' => 9267399,'code' => '5D:148','num' => 64),[1] => array('id' => 9267398,'code' => '5D:186','num' => 71)
);

提示:查看PDO和mysqli以更好地使用mysql查询.

(编辑:甘南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读