上一篇文章中我们介绍了MySQL优化总结-查询总条数。这篇文章我们来介绍下查询语句中的另一个知识:用户变量的使用代码解析。

先上代码吧

SELECT `notice`.`id` , `notice`.`fid` , `notice`.`has_read` , `notice`.`notice_time` , `notice`.`read_time` , `f`.`fnum` , `f`.`forg` , `f`.`fdst` , `f`.`actual_parking` AS `parking` , `f`.`scheduled_deptime` , `f`.`estimated_deptime` , `f`.`actual_deptime` , `f`.`scheduled_arrtime` , `f`.`estimated_arrtime` , `f`.`actual_arrtime` , `f`.`is_vip` , `f`.`aoc_notice`FROM (  select  t.id,   t.fid,   t.has_read,   t.notice_time,   t.read_time  from  (    select    a.id,     a.fid,     a.has_read,    a.notice_time,     a.read_time,    @v_rownum := @v_rownum+1,    if(@v_fid=a.fid,@v_rowid:=@v_rowid+1,@v_rowid:=1 ) as row_count,    @v_fid:=a.fid    from    (      SELECT      id,       fid,       has_read,       notice_time,       read_time       FROM vkm_user_notice_flight      where `notice_type` = 'process_update' and uid=82      order by fid, notice_time desc    ) a,    (      select @v_rownum:=0, @v_rowid:=0, @v_fid:=null    ) b  ) t  where t.row_count =1) AS `notice`LEFT JOIN `vkm_flight` AS `f` ON `notice`.`fid` = `f`.`id`LEFT JOIN `vkm_parking` AS `parking` ON `f`.`actual_parking` = `parking`.`parking_num`
SELECT `notice`.`id` , `notice`.`fid` , `notice`.`has_read` , `notice`.`notice_time` , `notice`.`read_time` , `f`.`fnum` , `f`.`forg` , `f`.`fdst` , `f`.`actual_parking` AS `parking` , `f`.`scheduled_deptime` , `f`.`estimated_deptime` , `f`.`actual_deptime` , `f`.`scheduled_arrtime` , `f`.`estimated_arrtime` , `f`.`actual_arrtime` , `f`.`is_vip` , `f`.`aoc_notice`FROM `notice` LEFT JOIN `vkm_flight` AS `f` ON `notice`.`fid` = `f`.`id` LEFT JOIN `vkm_parking` AS `parking` ON `f`.`actual_parking` = `parking`.`parking_num`

用户名量的设置可以通过set var value的方式也可以用以上的形式@var:=val;

mysql中if的使用if(exp1,exp2,exp3) 在if中如果exp1为true则执行exp2否则执行exp3;

现在再看上述的代码的话可能就简单多了!根据上述的代码我又重新自己写了一个简单的应用实例

select id,fnum,forg,fdst,@v_rownum:=@v_rownum+1 from vkm_flight,(select @v_rownum:=0) b

总结

更多相关文章

  1. ES6 变量声明,箭头函数,数组方法,解构赋值,JSON,类与继承,模块化练习
  2. [Android(安卓)NDK]Android(安卓)JNI开发例子 ---3 在JNI中实现o
  3. Android之adb环境变量配置
  4. android 目录结构,adb环境变量配置
  5. Android(安卓)-- Android(安卓)JUint 与 Sqlite
  6. 链接器解析多重定义的全局变量
  7. android 当系统存在多个Launcher时,如何设置开机自动进入默认的La
  8. Android(安卓)SQLiteDatabase的使用
  9. Android之Audio常用属性变量

随机推荐

  1. ASP.NET Core中的多语言支持的图文详解
  2. C#中关于逆变和协变的详解
  3. MemoryCache问题修复的解决方法
  4. ASP.NET Core Razor页面路由的详细介绍
  5. C#多线程之Semaphore的使用详解
  6. 详解有关asp.net mvc 动态编译生成Contro
  7. C#中Observer观察者模式如何解决牛顿童鞋
  8. C#如何实现JSON与对象之间互相转换功能示
  9. 有关ASP.NET Core 中的多语言支持的详细
  10. C#如何实现loading提示控件简单的实例