美文网首页
mysql语法及基本使用

mysql语法及基本使用

作者: 陈文瑜 | 来源:发表于2019-07-27 20:09 被阅读0次

    查询语法

    • 字符在字符串中查询
      select * from user where find_in_set(str,str_list)
      -- 区分
      select  *  from  table  where   uname  in('aaa',bbb','ccc','ddd','eee',ffff'');
      
    • 查找最大id的一条记录
      SELECT
      *
      FROM
      sx_product_category
      WHERE
      id = (select MAX(`id`) from sx_product_category)
      
    • 按条件整理查询结果(如果id>20显示20,否则显示id)
      SELECT
      IF
      ( ( id > 20), 20, id ) id 
      FROM
      sx_product_category
      
    • HAVING分组查询
      SELECT
          id,count(1) 
      FROM 
          sx_product 
      GROUP BY 
          cate_id 
      HAVING
          count( * ) > 1
      
    • 按条件分组统计
      SELECT
      count( CASE WHEN `id` >10 THEN 1 ELSE NULL END ) AS 'x>10',
      count( CASE WHEN `id` = 10 THEN 1 ELSE NULL END ) AS 'x=10',
      count( CASE WHEN `id` < 10 THEN 1 ELSE NULL END ) AS 'x<10' 
      FROM
      sx_product_category 
      
    • 在函数、存储过程中使用游标
        create procedure p2()
        begin
        declare id int;
        declare name varchar(15);
        -- 声明游标
        declare mc cursor for select * from class;
        -- 打开游标
        open mc;
        -- 获取结果
        loop  -- 循环,将表的内容都转移到class2中
        fetch mc into id,name;
        -- 这里是为了显示获取结果
        insert into class2 values(id,name);
        -- 关闭游标
        end loop;
        close mc;
        end;
      
    • mysql连接时乱码
      Db::execute("SET NAMES utf8");
    • source导入文件
      source /home/abc/abc.SQL
    • 判断当前是否为闰年
      DELIMITER $$
      DROP FUNCTION IF EXISTS `F_IS_LEAY_YEAR`$$
      CREATE FUNCTION `F_IS_LEAY_YEAR`() RETURNS INT(11)
      BEGIN
          DECLARE v_year INT;
          -- 0:不是闰年,1:是闰年
          DECLARE v_is_leay_year INT DEFAULT 0;
          SET v_year = DATE_FORMAT(NOW(), '%Y');
          -- 普通年能被4整除且不能被100整除的为闰年(如2012年就是闰年,2013年不是闰年)
          -- 世纪年能被400整除的是闰年(如2000年是闰年,1900年不是闰年) 
          IF v_year % 4 = 0 AND v_year % 100 <> 0 OR v_year % 400 = 0 THEN 
            SET v_is_leay_year = 1;
          END IF;
      
          RETURN v_is_leay_year;
      END$$
      DELIMITER ;
      --调用
      F_IS_LEAY_YEAR()
      

    相关文章

      网友评论

          本文标题:mysql语法及基本使用

          本文链接:https://www.haomeiwen.com/subject/nzxyrctx.html