mysql 内置查询

查看系统变量:
语法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;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值