查看系统变量:
语法show [global|session] variables [like '']
show variables -- 查看系统变量(默认是查看session,当前会话的系统变量)
show global variables -- 查看全局系统变量
show variables like 'max_connections' -- 查看 运行连接的最大客户端数量
SHOW VARIABLES LIKE 'character_set_server'; -- 服务器级别的字符集
SHOW VARIABLES LIKE 'collation_server'; -- 服务器级别的比较规则
SHOW VARIABLES LIKE 'character_set_client'; -- 服务器解码请求时使用的字符集
show VARIABLES LIKE 'innodb_autoinc_lock_mode'; -- 控制自增锁持有的时间 (比如批量插入3条数据;如果参数 innodb_autoinc_lock_mode 设置为2,自增锁需要持有 3 次,每插入一条记录获取一次自增锁。参数 innodb_autoinc_lock_mode 设置为 1,自增锁在这一条 SQL 执行完成后才释放。innodb_autoinc_lock_mode=2好处是: 当前插入不影响其他自增主键的插入,可以获得最大的自增并发插入性能。=2的缺点是: 一条 SQL 插入的多条记录并不是连续的,如结果可能是 1、3、5 这样单调递增但非连续的情况。)
show variables like 'sql_mode';
查看状态变量
语法 SHOW [GLOBAL|SESSION] STATUS [LIKE 匹配的模式];
show status -- 查看所有状态变量,默认session
show global status -- 查看全局状态变量
show status like 'thread%' -- 查看与线程相关的状态变量
select UUID(); -- d3cecae1-b936-11eb-a48d-00163e102266
select length("青苔") -- 6 -- 返回字节数
SELECT @@session.transaction_isolation; -- 查看隔离级别
show create table 表名; -- 查看建表语句
select version(); -- 查看MySQL版本号
select cast(0xF09F988E as char charset utf8mb4) -- 查看表情
json函数
参考https://www.cnblogs.com/ooo0/p/9309277.html
select json_array("764","sj") -- ["764", "sj"] -- 输出json数组
select JSON_OBJECT("age",12,"name","name1","isSmall",true) -- {"age": 12, "name": "name1", "isSmall": true}
SELECT JSON_QUOTE('[1,2,3]'); -- "[1,2,3]" -- 加双引号
SELECT JSON_CONTAINS('["764", "130"]', '"130"'); -- 1 -- 查找"130"是否存在["764", "130"]里 (1存在,0不存在) 如果有参数为NULL或path不存在,则返回NULL。
SELECT JSON_SEARCH('["764", "130"]', 'one', '130') -- "$[1]" -- 查找130在["764", "130"]中的位置,不存在则返回null
-- phone_numbers = [{"param": "{\"pname\":\"商品1\",\"phone\":\"12354671722\"}", "phone": "12354671722"}, {"param": "{\"pname\":\"商品0\",\"phone\":\"12354671720\"}", "phone": "12354671720"}]
select JSON_EXTRACT(phone_numbers,'$[*].phone') p from tbName -- ["12354671722", "12354671720"]
select created_at, updated_at,JSON_EXTRACT(phone_numbers,'$[*].phone') p from tableName t
where json_contains(JSON_EXTRACT(phone_numbers,'$[*].phone'),'"11111111111"');
select JSON_LENGTH(json_array("764","sj")) -- 2 -- 查找json数组元素个数
-- JSON_LENGTH(json_doc[, path])
-- 获取指定路径下的长度。如果参数为NULL,则返回NULL。
-- 长度的计算规则:
-- 标量的长度为1;
-- json array的长度为元素的个数;
-- json object的长度为key的个数。
select id,phone_numbers->'$[*].receive_phone' p,
JSON_LENGTH(phone_numbers->'$[*].receive_phone') ct,phone_numbers
from tableName
-- 查询结果 -- 其中phone_numbers的值为json数组,数组里的元素是json对象
id p ct phone_numbers
1 ["12345466666", "12378790900"] 2 [{"param": "{\"name\":\"宝宝\",\"phone\":\"测试\"}", "receive_phone": "12345466666"}, {"param": "{\"pname\":\"了无\",\"phone\":\"测试\"}", "receive_phone": "12378790900"}]
-- p 就是查询json数组中的receive_phone组成json数组,
-- ct 就是查询json数组中的receive_phone组成json数组元素的个数
-DATETIME 类型支持毫秒,DATETIME(N) 中的 N 表示毫秒的精度。一些日期函数也支持精确到毫秒,例如常见的函数 NOW()、SYSDATE():
select now(6); -- 2021-06-28 17:13:02.845811 -- DATETIME(6) 表示可以存储 6 位的毫秒值。
select now(); -- 2021-06-28 17:13:02.0
select CURRENT_TIMESTAMP(6); -- 2021-06-28 17:17:57.189146
# 一个json中,多层就直接通过.链接下去(order[*], order是数组)
select id,phones->'$.trade_fullinfo_get_response.trade.orders.order[*].oid' oid FROM bbcl_customer_test.test_save;