有表tba
sfzh(一个字段)
有表tbb
name,phone,sfzh,dz,等字段
表tbb中的sfzh字段,存储的可能是加密数据,也有可能是明文
解密方法是:REPLACE(TRANSLATE(sfzh,'BA@GFEDKJC+','1234567890X'),'^1','')
现在需要根据表tba中的身份证sfzh查询表tbb中的相关信息
我使用如下查询
select b.name,b.phone,b.sfzh,b.dz from tba a left join tbb b on a.sfzh=b.sfzh or a.sfzh=REPLACE(TRANSLATE(b.sfzh,'BA@GFEDKJC+','1234567890X'),'^1','')
30多分钟没有出来结果
tba 2000条记录,tbb 10万条记录
求助:请高手给出正确的写法
------解决方案--------------------
tba是小表,应该以它作为驱动表
a.sfzh=REPLACE(TRANSLATE(b.sfzh,'BA@GFEDKJC+','1234567890X'),'^1','')
要改成
b.sfzh=balabala.....(a.sfzh....)
在b.sfzh上要有个索引
------解决方案--------------------
tbb 有10万条记录,建议对该表使用索引