日期:2014-05-17  浏览次数:20506 次

关于不等号和or的优化问题
据说用union会比or快,但是太多or的话,union的次数就多了,我碰到了一个sql语句,比如
SQL code

    SELECT * FROM 业务表 A, 业务表记录B
    WHERE A.ID = B.ID
....
      AND (A.a  <>B.a
       OR  A.b  <>B.b
       OR  A.c  <>B.c
       OR  A.d  <>B.d
       OR  A.e  <>B.e
       OR  A.f  <>B.f
...)



这个没用到触发器,只是在存储过程里面,通过这个句子,找改变过的记录
如何优化比较好呢?

------解决方案--------------------
试试
SQL code
AND (A.a+A.b+A.c+A.d+Q.d+Q.e+Q.f)<>(B.a+B.b+B.c+B.d+B.d+B.e+B.f)

------解决方案--------------------
怎么能直接加呢

1<>2
2<>1
1+2=2+1