MySQL查询数据使⽤IF来判断动态执⾏条件
MySQL查询数据,使⽤IF来判断动态执⾏条件
格式
IF(expression ,expr_true, expr_false);
MySQL的IF()函数,接受三个表达式,如果第⼀个表达式为true,⽽不是零且不为NULL,它将返回第⼆个表达式。否则,它返回第三个表达式。根据使⽤它的上下⽂,它返回数字或字符串值。实例
SELECT * FROM book WHERE IF(price > 120, btypeid=10, btypeid=11);#WHERE IF(条件, true执⾏条件, false执⾏条件 )
释义
当price⼤于120为真时,执⾏语句为where price>120 and btypeid=10;
当price⼤于120为假时,执⾏语句为where price<120 and btypeid=11;准确来说应该是where price<=120 and btypeid=11;
SELECT * FROM book WHERE IF(price > 120, btypeid=10, btypeid=11);这条sql语句等价于如下sql语句
select * from book where price > 120 and btypeid =10 union select * from book where price < 120 and btypeid = 11;
MySQL UNION 操作符
MySQL UNION 操作符⽤于连接两个以上的 SELECT 语句的结果组合到⼀个结果集合中。多个 SELECT 语句会删除重复的数据。
MySQL UNION 操作符语法格式:
SELECT expression1, expression2, ... expression_n FROM tables [WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
参数
expression1, expression2, ... expression_n: 要检索的列。
tables: 要检索的数据表。
mysql删除重复的数据保留一条WHERE conditions: 可选,检索条件。
DISTINCT: 可选,删除结果集中重复的数据。默认情况下 UNION 操作符已经删除了重复数据,所以 DISTINCT 修饰符对结果没啥影响。
ALL: 可选,返回所有结果集,包含重复数据。
SQL UNION 实例
下⾯的 SQL 语句从 "Websites" 和 "apps" 表中选取所有不同的country(只有不同的值):
实例
SELECT country FROM Websites
UNION
SELECT country FROM apps
ORDER BY country;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论