重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
mysql的trigger还是有很多限制的地方:
创新互联专业提供电信内江机房服务,为用户提供五星数据中心、电信、双线接入解决方案,用户可自行在线购买电信内江机房服务,并享受7*24小时金牌售后服务。
1
一次只能定义一个触发动作。
create
trigger
or_sal
before
insert
on
teacher
for
each
row
--每次只定义一个吧
2
设置值必须使用set语句
set
new.sal
=
4000;
--要加set
3
分隔符的问题
看是使用什么客户端工具,根据报错结果修正吧。有的工具对分隔符支持不好,可以在mysql命令行执行试下。
看你语句里面的IF函数例子:
IF(g.give_integral -1, g.give_integral, c.goods_price)
这个函数的结果要根据g.give_integral的值,如果g.give_integral大于-1函数值就是g.give_integral,否则函数值就是c.goods_price。
控制流程函数
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'
mysql中没有if可以使用case when then end 来代替;
例如:查询语句select case 字段 when 1 then '一'
when 2 then '二' end from 表名;
ifnull函数参数解析:第一个参数为 字段的名字,第二个参数为 最终替换成的值。如果 第一个字段的值 为 NULL,查询的结果中 会被 替换成 0.
三目运算:IF(expr1,expr2,expr3) 。如果 expr1是TRUE,则IF()的返回值为expr2; 否则返回值则为expr3
正则解析:如果 第一个 参数中的正则 匹配成功,if() 的值 为 第二个参数的值。否则为 第三个参数的值。
答案(先把 所有 学生的语文成绩 查出来 作为一个 新表,然后 对新表 进行 分组 聚合):
答案: