mysql默认值
发表于|更新于
|浏览量:
时穷节乃见,一一垂丹青。一一文天祥
如果我们在编写SQL时需要给一个默认值,例如查询或者编辑的时候,可以使用mysql函数IFNULL
例如这里我们表内有两条数据

然后我们编写SQL,如果我们用户名为null,我们默认填充一个unknown
1 | SELECT id,IFNULL(username,'unknown') username FROM `user` |

在编辑的时候也可以用
1 | UPDATE user set username = IFNULL(`username`,'achao') where id = 2 |
这里如果我们的username为null,就会被修改成achao,但如果已经有值了,则不会进行修改
相关推荐
2020-08-20
mysql一次给数据库所有表加字段
执行脚本 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950DROP PROCEDUREIF EXISTS addColumn;DELIMITER $$CREATE PROCEDURE addColumn () BEGIN-- 定义表名变量 DECLARE s_tablename VARCHAR ( 100 );/*显示表的数据库中的所有表SELECT table_name FROM information_schema.tables WHERE table_schema='databasename' Order by table_name ;*/#显示所有 DECLARE cur_table_structure CURSOR FOR SELECT table_name FROM INFORMATION_SCHEMA.TABLES -- databasename = 数据库名称 WHERE table...
2023-07-05
迁移数据到备份表
对孩子的责任感是一切美德的基础。——西塞罗 昨晚写了个sql执行了一会儿去睡觉了,第二天发现还在执行 然后停止了下来,换另一种方式,将不需要删除的数据迁移到备份表,然后删除原表,再重命名回去 1234567CREATE TABLE mx_product_detail_bak LIKE mx_product_detail;INSERT INTO mx_product_detail_bakSELECT *FROM mx_product_detailWHERE type = 0;DROP TABLE mx_product_detail;RENAME TABLE mx_product_detail_bak TO mx_product_detail;
2022-04-13
mysql用户、授权
天空没有一片云,一轮圆月在这一碧无际的大海里航行,孤独的,清冷的,它把它的光辉撒下来,地上,瓦上都染上了一层银白色,夜非常静。——巴金 官方文档: https://dev.mysql.com/doc/refman/8.0/en/assigning-passwords.html 创建用户 1CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password'; 修改密码 1ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password'; 匿名用户登录,修改自身密码 1ALTER USER USER() IDENTIFIED BY 'password'; 使用mysqladmin^1修改密码 1mysqladmin -u user_name -h host_name password "password" 注意修改失...
2022-06-09
exists
发上开出了蔷薇,袖底是风,足下是莲。——顾城 我们可以使用exists代替in查询: 阿里编码规约第五条第(三)条第9条: 【推荐】in操作能避免则避免,若实在避免不了,需要仔细评估in后边的集合元素数量,控制在1000个之内。 我们可以在子元素多的情况下,使用exists查询 比如下面这个in查询 123456789101112SELECT * FROM sys_user AS a WHERE id in ( SELECT user_id FROM sys_user_role AS b WHERE b.role_id IN ( SELECT id FROM sys_role AS c WHERE b.role_id = c.id AND c.role_code LIKE '%o%' )); 可以改为: 12345678910111213SELECT * FROM sys_user AS a WHERE EXISTS ( SELECT user_id FROM sys_user_role AS b WHERE a.id = b.us...
2021-02-25
mysql中条件函数
世上有味之事,包括诗、酒、哲学、爱情,往往无用。吟无用之诗,醉无用之酒,读无用之书,钟无用之情,终于成一无用之人,却因此活得有滋有味。——周国平《风中的纸屑》 在我们日常开发中,有时可能会在SQL中写一些条件,例如这里一个例子 这里有这样一张表,数据如下: 如果我们需要把未认证(状态为NOT_AUTH)的用户放到前面排序显示,在不影响分页的情况下,我们可以这么写 1SELECT *,IF(status='NOT_AUTH','NOT_AUTH',null) AS sort FROM `user` ORDER BY sort DESC 这里使用到了MYSQL的IF函数 1IF([条件],[为true时值],[为false时值]) 例如我们需要整体排序,认证中的在最前,然后是未认证的,最后是已认证的 我们则可以使用MYSQL中的CASE、WHEN、THEN、ELSE、END一套去做 12345SELECT *,( CASE WHEN STATUS = 'AUTHING' THEN 0 WHEN STATUS = ...
2022-02-22
mysql导出导入
成熟意味着停止展示自己并学会隐藏自己。——《失踪的孩子》 官方文档:https://dev.mysql.com/doc/refman/8.0/en/backup-and-recovery.html 我们可以使用mysql自带的导出工具mysqldump进行导出,我们进入到mysql的bin目录,运行命令 1mysqldump -u[用户名] -p --default-character-set=[编码格式] --databases [数据库名] > [导出路径] 例如我此处的: 1mysqldump -uroot -p --default-character-set=utf8 --databases test > D:\file\tmp\xxx.sql 输入完毕后需要输入密码,我们输入就行了 然后我们可以在mysql客户端中使用source命令,首先连接mysql 1mysql -uroot -p 输入密码后我们切换到想导入的数据库 1use test; 然后使用source 1source D:/file/tmp/xxx.sql; 注意反斜杠转义问题...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog