zoukankan      html  css  js  c++  java
  • Mysql问题记录

    1.limit分页运算
    limit分页时不能在分页中做运算,所以可以这样写
    SET @a=CONCAT('select a.* from (
    SELECT
    COUNT(1) OVER() AS count,
    name,
    weight
    FROM
    dwd_hospital_region_statistics
    where type=2
    ) a order by a.weight desc limit ',(1-1)*5,',',5,'');
    PREPARE texts FROM @a;
    EXECUTE texts;
    用concat拼接,然后再去运行。
    这样就可以进行运算了,这个sql还有个计算count的功能,计算这个数据的总数。
    当然,如果这样的话,在mybatis中默认时不能同时运行多条sql的,可以改一下配置
    allowMultiQueries=true
    如下图:

    2.写死某个数据值
    业务场景:为什么不用数据类型type,用1234表示不同的类型,因为前端需要可配置,页面上的具体name需要后端传过去,并且大部分地方是展示医废总量,只有这一处是医废收集量
    写法:直接select '你想要的固定值' 字段 from 表名
    select year(report_time) as date, sum(num) as num,'医废收集量' name from dwd_medical_waste where name = '医废总量' GROUP BY year(report_time)

    结果是

    3.数据存在则更新,不存在就新增
    重点:判断数据存在还是不存在的那个字段要设置成unique索引
    用ON DUPLICATE KEY
    INSERT INTO student(id,value,name) VALUE(12,21,'小李') ON DUPLICATE KEY UPDATE name= '李四'

    再次运行

    4.field排序(可以将数据值根据你想要的顺序排序)
    select year(report_time) as date,name ,sum(num) as num from dwd_medical_waste where name!='在线监测医废总数' GROUP BY name,year(report_time) order by year(report_time), field(name, '医废总量', '感染性医废', '药物性医废', '损伤性医废', '病理性医废', '化学性医废') asc;

    5.预编译 PREPARE '预编译名' FROM sql、编译EXECUTE '预编译名';

  • 相关阅读:
    c++ 左值和右值
    C++的顶层const和底层const的理解
    TCP/IP模型中的网络层
    有关TCP/IP模型中的网络接入层
    计算机网络协议与IPv4地址
    浅析计算机网络
    海思Android开发平台如何自定义update.zip内容
    Android平台RTL蓝牙适配偶现打不开问题调试笔记
    Android的SoundPool
    Android开发之IntentService
  • 原文地址:https://www.cnblogs.com/zzqcupidzhq/p/14005567.html
Copyright © 2011-2022 走看看