SQL中or关键字
程序员文章站
2022-05-18 18:36:51
...
背景
同事测试时反应汇总的数据比库里正常的数据多了很多。
正常只有432条,但汇总出了近五百条数据。
原因
- 查看了下汇总出的数据,发现有很多都重复了,但是按理来说用框架查出来的不会有重复,所以觉得可能是自己sql写的有问题。查询了相关资料后确定是sql中or关键字的问题。
解决过程
sql = "SELECT
*
FROM
Rm_Agenda_Group t
WHERE
t.dealer_Num = '4' or t.group_Code = '1048'
AND
t.user_id = 'super'
";
上图SQL的语法相当于下面两条SQL之和
sql =" SELECT * FROM Rm_Agenda_Group t WHERE t.dealer_Num = '4' ";
sql =" SELECT * FROM Rm_Agenda_Group t WHERE t.group_Code = '1048' AND t.user_id = 'super' ";
(这样执行下来,第一条sql就少了user_id这个条件的限制!)
解决方法: or关键字两边的条件一定要加括号,这样执行时才会被视为一个整体条件。
查出432条数据,正确!
上一篇: 你应该知道的RPC原理
下一篇: PHP中利用PHPMailer实现发邮件