每日的盐 C#生成imei校验位

这篇博客探讨了如何使用SQL进行数据查询和处理。内容包括:1) 通过子查询找到重复SN并选取最新记录;2) 删除文件表中地址重复但保留最小ID的记录;3) 检查生产日志中SN的重复情况;4) 展示了一个计算IMEI校验位的C#函数。博客还提及了低版本MySQL对事务支持的限制,并建议使用C#来处理复杂逻辑。
摘要由CSDN通过智能技术生成

 Mysql

--重复sn始终取最后一条
select * FROM  production_log  WHERE ( sn in('1') or imei1 in('1') or imei2 in('1') ) and  dt IN (

 select * from (
 (SELECT max(dt) FROM production_log WHERE ( sn in('1') or imei1 in('1') or imei2 in('1') )  GROUP BY  sn         ) 
 b)
) order by sn


--删除地址重复,保留最小id
DELETE FROM  file  WHERE fileaddress IN (
    
    select * from (
    ( SELECT fileaddress  FROM file GROUP BY fileaddress  HAVING count(fileaddress) > 1) 
    a)
    
    )
AND id NOT IN (

 select * from (
 (SELECT min(id) FROM file   GROUP BY  fileaddress   HAVING  count(fileaddress) > 1         ) 
 b)
 
)  
找出fileaddress重复的地址 
找出fileaddress重复的地址 且不删除最小id



#看看还有没有重复的
select * from production_log where dt>'2022-07-25' group by sn having (count(sn)>1)

Mysql实现导入生产数据

想用sql脚本直接导入,发现低版本5.5.38对事务仅支持sql语句  使while for支持不好。

还是用C#吧。

//生成imei校验位
        public static char GetIMEICheckDigit(string imei)
        {
            int i;
            int sum1 = 0, sum2 = 0, total = 0;
            int temp = 0;

            for (i = 0; i < 14; i++)
            {
                if ((i % 2) == 0)
                {
                    sum1 = sum1 + imei[i] - '0';
                }
                else
                {
                    temp = (imei[i] - '0') * 2;
                    if (temp < 10)
                    {
                        sum2 = sum2 + temp;
                    }
                    else
                    {
                        sum2 = sum2 + 1 + temp - 10;
                    }
                }
            }

            total = sum1 + sum2;

            if ((total % 10) == 0)
            {
                return '0';
            }
            else
            {
                return (char)(((total / 10) * 10) + 10 - total + '0');
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黄人软件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值