通过and和or以及括号来设置查询条件的优先级,可以做到灵活查询。
其中or是或的关系,前后两个条件满足一个即可;and是并的关系,前后条件必须同时满足。
通过对同一个条件的or连接,可以实现用户输入时生效,不输入时不生效。
举例如下:
查找1988年10月1号出生,同时身高为175的的学生:where条件可以写作
birthday = ‘1988-10-1’ and height =175。
此时如果不输入身高条件,想查1988年10月1号出生的所有学生,则where 语句变成 birthday = ‘1988-10-1’ and height =null;这个条件是1988年10月1号出生,身高为空的所有学生,不是自己所要的结果。要想达到目的,通过and和or的组合即可实现:实现where条件为:birtthday = ‘1988-10-1’ and (height = 身高值 or 身高值 is null);这样查询时,可以输入身高值,也可以不输入身高值保持为空。这样就能查询出来1988年10月1号所有身高的的学生。还有一种情况,不输入身高值的时候,查询生日是1988年10月1号的所有学生,当输入身高时,则只按身高查询,不管生日在哪一天。查询条件就需要这样写了:(birthday='1988-10-01' or 身高值 is null) and height = 身高值。
通过以上例子,可以看到使用and 、or 和()可以有多种组合来达到灵活查询的目的。