【mysql】骚操作

1、查询表的所有字段名

现在有一张表,查看建表语句show create table user
【mysql】骚操作_第1张图片
然后我们来查询这个表的所有字段名,并且按照逗号隔开

select group_concat(column_name separator ',') as rowz
from information_schema.COLUMNS
where table_schema = 'acode'
  and table_name = 'user';

在这里插入图片描述

2、将数据导出为CSV

要执行导出命令,需要先查看有没有权限,有权限才能导出
【mysql】骚操作_第2张图片
如果是这样,就是没有权限show variables like '%secure%';
【mysql】骚操作_第3张图片
然后找到mysql的配置文件my.ini,在模块[mysqld]下配置secure_file_priv的地址,我这里配置为空字符串,注意一定是在[mysqld]这个模块下
【mysql】骚操作_第4张图片
执行SQL查看导出结果

select *
from (select 'username', 'password' union all select username, password from user) b
into outfile '/test.csv' fields terminated by ',' enclosed by '"' lines terminated by '\r\n';

【mysql】骚操作_第5张图片

3、加载CSV文件到表

如上我们导出的文件,既然可以导出csv文件,肯定也可以加载csv文件到表中。使用下面的sql执行加载

load data local infile 'E:\\test.csv'
    replace into table user
    CHARACTER SET utf8mb4
    COLUMNS TERMINATED by ','
    IGNORE 1 lines
    (username, password);

不出意外的话,肯定要出意外
【mysql】骚操作_第6张图片
显然又的配置个参数
【mysql】骚操作_第7张图片
可以看到这功能是关闭的的,下面打开它set global local_infile=1;这个命令是临时的,当mysql服务重启以后又会关闭。所以在my.ini配置文件中找到以[client], [mysql], [mysqld]开头的三处位置,在每处的下面加一行 local_infile=ON重启以后依然生效。
【mysql】骚操作_第8张图片
然后重新登录数据库,注意需要加上参数mysql -uroot -proot --local-infile ,注意--local-infile否则依然没有权限
在这里插入图片描述
导入成功
【mysql】骚操作_第9张图片

4、mysql解析JSON

如果你的值存的是一个JSON数组,你想取出其中的第一个
在这里插入图片描述
就是说你只想要张三

select json_unquote(JSON_EXTRACT(username, '$[0]')) as username, password from user where user_id = 36;

【mysql】骚操作_第10张图片
JSON_EXTRACT这个函数在解析JSON上还有别的功能,可深入学习下。

你可能感兴趣的:(mysql,mysql,sql)