mysql sql文中 使用判断的方式

    xiaoxiao2021-03-25  139

    简单易懂哦!!!

    select ID from VULN_INFO

            where if(001 != '1'|| 001 != '001',VULN_ID = '001',VULN_ID like '%')           and if(001 != '1',CVSS_VECTOR like '002%',like '%')           and if(?!= '1' ,?< CVSS_SEVERITY, CVSS_SEVERITY like '%')           and if(severity_score_min != '1' ,severity_score_max > CVSS_SEVERITY, CVSS_SEVERITY like '%')           and if(severity_score_min != '1' ,severity_score_max > CVSS_SEVERITY, CVSS_SEVERITY like '%')           and if(severity_score_min != '1' ,severity_score_max > CVSS_SEVERITY, CVSS_SEVERITY like '%')

              and if(001 != '1',VULN_ID = '002',VULN_ID ='001')

    但是为了效率最好放在java里面写。

    也就是通过Stringbuilder  字符串的拼接方法,在sql的字符串中,来判断是否为空,然后在通过 append 来一个一个的追加,或者不追加。

    还有例如 like 的"%"   最好在传参数的时候给他加上,就是避免 sql文中有过多的操作,因为DB的操作是很慢的。

    但是如果sql文比较长,判断条件比较多写起来就比较复杂了,这时候可以使用mybatis框架,使用它的动态sql文,写起来就是so easy了。哈哈。。

    转载请注明原文地址: https://ju.6miu.com/read-10634.html

    最新回复(0)