新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
有时候在修改某一个字段的值得时候我们需要根据当前字段的不同状态进行不同处理,
陕西网站建设公司成都创新互联公司,陕西网站设计制作,有大型网站制作公司丰富经验。已为陕西成百上千家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的陕西做网站的公司定做!
比如对于用户表,我们需要记录下来用户被访问的次数,但访问次数的初始值为 null。
如下:
CREATE TABLE `test` (
`id` int(11) NULL DEFAULT NULL ,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`visit_num` int(11) NULL DEFAULT NULL
)
我们就可以使用如下的 sql 进行判断和修改
UPDATE test set visit_age=if(visit_num is null,1,visit_num+1) where id=1。
mysql中没有if可以使用case when then end 来代替;
例如:查询语句select case 字段 when 1 then '一'
when 2 then '二' end from 表名;
交换以下工资信息表中的m和f
这里主要练习一下两种条件方法,先是case when方法,
语法是CASE expressing WHEN condition THEN return
这里expressing 不是必须的,如果有,就是拿来和condition进行比较的,意即如果有expressing,默认将它和WHEN后面的条件进行=比较,如果真,返回THEN后面的结果。下面是有expressing和没有expressing的两种写法:
或者,我们可以用if方法
if的语法是IF(condition, value_if_true, value_if_false)
假如expr1不为NULL,则 IFNULL() 的返回值为expr1; 否则其返回值为 expr2。IFNULL()的返回值是
数字或是字符串,具体情况取决于其所使用的语境。
如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。
如果expr1 = expr2 成立,那么返回值为NULL,否则返回值为expr1。这和CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END相同。
控制流程函数
CASE value WHEN [compare-value] THEN result [WHEN
[compare-value] THEN result ...] [ELSE result] END CASE WHEN [condition]
THEN result [WHEN [condition] THEN result ...] [ELSE result] END
例:
mysql SELECT IF(12,'yes ','no');
- 'yes'
ifnull函数参数解析:第一个参数为 字段的名字,第二个参数为 最终替换成的值。如果 第一个字段的值 为 NULL,查询的结果中 会被 替换成 0.
三目运算:IF(expr1,expr2,expr3) 。如果 expr1是TRUE,则IF()的返回值为expr2; 否则返回值则为expr3
正则解析:如果 第一个 参数中的正则 匹配成功,if() 的值 为 第二个参数的值。否则为 第三个参数的值。
答案(先把 所有 学生的语文成绩 查出来 作为一个 新表,然后 对新表 进行 分组 聚合):
答案: