mysql使用if……else语句判断当天是否是星期天?
两种格式,一种是时间戳,一种是日期格式①SELECT IF(days = 1,"是","不是") as "是否星期天" FROM (SELECT DAYOFWEEK(FROM_UNIXTIME(time,"%Y-%m-%d")) AS days FROM table) tmp; ---time是时间戳 , days = 1代表星期天--把time 和 table 替换成你数据库的 字段和表②SELECT IF(days = 1,"是","不是") as "是否星期天" FROM (SELECT DAYOFWEEK(date) AS days FROM table) tmp; ---date是日期格式 2017-11-21 , days = 1代表星期天--把date 和 table 替换成你数据库的 字段和表
mysql有全局临时表吗?
临时表、表变量的比较
1、临时表
临时表包括:以#开头的局部临时表,以##开头的全局临时表。
a、存储
不管是局部临时表,还是全局临时表,都会放存放在tempdb数据库中。
b、作用域
局部临时表:对当前连接有效,只在创建它的存储过度、批处理、动态语句中有效,类似于C语言中局部变量的作用域。
全局临时表:在所有连接对它都结束引用时,会被删除,对创建者来说,断开连接就是结束引用;对非创建者,不再引用就是结束引用。
但最好在用完后,就通过drop table 语句删除,及时释放资源。
c、特性
与普通的表一样,能定义约束,能创建索引,最关键的是有数据分布的统计信息,这样有利于优化器做出正确的执行计划,但同时它的开销和普通的表一样,一般适合数据量较大的情况。
有一个非常方便的select ... into 的用法,这也是一个特点。
2、表变量
a、存储
表变量存放在tempdb数据库中。
b、作用域
和普通的变量一样,在定义表变量的存储过程、批处理、动态语句、函数结束时,会自动清除。
c、特性
可以有主键,但不能直接创建索引,也没有任何数据的统计信息。表变量适合数据量相对较小的情况。
必须要注意的是,表变量不受事务的约束,
mysql分区空值数据处理方法?
select IFNULL(‘可能有空值的列’,‘为空值时默认的值(数据类型记得对上)’) from table 例;
SELECT IFNULL(zt,0),dctm FROM tb_battery_old_table
mysql的until的用法?
DROP PROCEDURE IF EXISTS test;
CREATE PROCEDURE test()
BEGIN
DECLARE i INT;
SET i = 0;
REPEAT
INSERT INTO test VALUES(i+11,'test','20'); # 往test表添加数据
SET i = i + 1; # 循环一次,i加一
UNTIL i > 10 END REPEAT; # 结束循环的条件: 当i大于10时跳出repeat循环
SELECT * FROM test;
END
CALL test();
DELIMITER ;

