lua实现判断一个组数据中是否超过五不同数的存在

这篇博客介绍了使用Lua实现检查一组数据中是否有超过五个不同的八达通卡号存在。通过创建两个表格,一个存储原始数据,另一个记录不同数据,然后通过循环比较并计数,最后判断是否超过5个不同的八达通卡号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实现思路

这里用两个表,一个表放原始数据,另外一个表存放比较过后存在不同的数据:如下图


实现的具体代码如下



  local rsultTab = {}
  local conditon = {}
  local subcondition = {}
  conditon.payer_card_no = aes.encryptData(globaltab.req8583tab[2])
  subcondition = {}
  subcondition["$in"] = {"120", "131"} 
  conditon.pb_trans_type = subcondition
  subcondition = {}
  subcondition["$in"] = {"0000", "8999"} 
  conditon.bank_resp_code = subcondition
  conditon.ybs_mer_code = globaltab.reqpbtab["tfmccode"]
  
  rsultTab = {"pb_trans_type", "conv_amt", "teacct"}
  local res , _err = _M.queryFlow(mf, rsultTab, conditon)
if res.rowscnt == 0 then
    log(m_uuid,"NO_DATA_FOUND")
    return true
  end
   
  local cnt = 0
  
  local octcardtab = {}
  local flag = 0
  octcardtab[1] = aes.encryptData(globaltab.req8583tab[59]) 

local i, j
  for i=1, res.rowscnt do
    for j=1, #octcardtab do
      if octcardtab[j] == res.rows[i].teacct then
        --if exist
        flag = 1
        break
      end
    end
    if flag == 0 then
      log(m_uuid, "======================" .. i )
      octcardtab[#octcardtab+1] = res.rows[i].teacct
    end
    flag = 0
  end


  for k, v in pairs(octcardtab) do
   log(m_uuid, k .. "=" .. v)
  end
  
  --判断是否每天超过5张不同的八达通卡
  if #octcardtab > 5 then
    return nil
  end






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值