MySQL --- 函数大全3
目錄
1.返回串聯字符串? ?GROUP_CONCAT()
2.返回子字符串第一次出現的索引? INSTR()
3.如果子集中的所有 GTID 也在集合中,返回 true,否則返回false? ?GTID_SUBSET()?
4.返回集合中不在子集中的所有 GTID? ?GTID_SUBTRACT()
5.十進制或字符串值的十六進制表示形式? ?HEX()
6.提取小時? ?HOUR()
7.重癥監護室庫版本? ?ICU_SUBTRACT()
8.如果/否則構造? IF()
9.空 if/else 構造? IFNULL()
10.值是否在一組值內? ? IN()
11.返回 IP 地址的數值????????INET_ATON()
12.從數值返回 IP 地址? ? ? ? ?INET_NTOA()
13.返回 IPv6 地址的數值???????INET6_ATON()
14.從數值返回 IPv6 地址? ? ? ?INET6_NTOA()
15.在指定位置插入子字符串,最多插入指定數量的字符? ? ? ? INSERT()
16.返回小于第一個參數的索引論點? ? ? ? INTERVAL()
17.針對布爾值測試值? ? ? ? IS()
18.命名鎖是否可用? ? ? ? IS_FREE_LOCK()
19.參數是否為 IPv4 地址? ? ? ? IS_IPV4()
20.參數是否為與 IPv4 兼容的地址? ? ? ? IS_IPV4_COMPAT()
21.參數是否為 IPv4 映射地址????????IS_IPV4_MAPPED()
22.參數是否為 IPv6 地址? ? ? ? IS_IPV6()
23.針對布爾值測試值? ? ? ? IS NOT()
24.非空值測試? ? ? ? IS NOT NULL()
25.空值測試? ? ? ? IS NULL()
26.命名鎖是否正在使用中;如果返回連接標識符,則返回真? ? ? ? IS_USED_LOCK()
27.參數是否為有效的 UUID? ? ? ? IS_UUID()
28.測試參數是否為 NULL? ? ? ? ISNULL()
29.創建 JSON 數組? ? ? ? JSON_ARRAY()
30.將數據追加到 JSON 文檔????????JSON_ARRAY_APPEND()
31.插入到 JSON 數組中? ? ? ? JSON_ARRAY_INSERT()
32.將結果集作為單個 JSON 數組返回? ? ? ? JSON_ARRAYAGG()
33.JSON 文檔是否在路徑中包含特定對象? ? ? ? JSON_CONTAINS()
34.JSON 文檔是否在路徑中包含任何數據????????JSON_CONTAINS_PATH()
35.JSON 文檔的最大深度? ? ? ? JSON_DEPTH()
36.從 JSON 文檔返回數據? ? ? ? JSON_EXTRTACT()
37.將數據插入 JSON 文檔? ? ? ? JSON_INSERT()
38.來自 JSON 文檔的鍵數組? ? ? ? JSON_KEYS()
39.JSON 文檔中的元素數? ? ? ? JSON_LENGTH()
40.合并 JSON 文檔,替換重復鍵的值? ? ? ? JSON_MERGE_PATCH()
41.合并 JSON 文檔,保留重復的鍵????????JSON_MERGE_PRESERVE()
42.創建 JSON 對象? ? ? ? JSON_OBJECT()
43.將結果集作為單個JSON 對象返回? ? ? ? JSON_OBJECTAGG()
44.比較兩個JSON文檔是否擁有任何一個相同鍵值對或數組元素 JSON_OVERLAPS()
45.以可讀的格式打印 JSON 文檔? ? ? ? JSON_PRETTY()
46.引用 JSON 文檔? ? ? ? JSON_QUOTE()
47.從 JSON 文檔中刪除數據? ? ? ? JSON_REMOVE()
48.替換 JSON 文檔中的值? ? ? ? JSON_REPLACE()
49.根據指定的 JSON 模式驗證一個 JSON 文檔 ? ? JSON_SCHEMA_VALID()
50.根據指定的 JSON 模式驗證一個 JSON 文檔,并返回一個驗證報告? ? ? ? JSON_SCHEMA_VALIDATION_REPORT()
1.返回串聯字符串? ?GROUP_CONCAT()
腳本
create table emp (emp_id int primary key auto_increment comment '編號',emp_name char(20) not null default '' comment '姓名',salary decimal(10, 2) not null default 0 comment '工資',department char(20) not null default '' comment '部門' );insert into emp(emp_name, salary, department) values ('張晶晶', 5000, '財務部'),('王飛飛', 5800, '財務部'),('劉小貝', 5700, '人事部'),('王大鵬', 6700, '人事部'),('劉云云', 7500, '銷售部'),('劉云鵬', 7200, '銷售部');select department,group_concat(emp_name) from emp group by department;分析
列轉行
結果
2.返回子字符串第一次出現的索引? INSTR()
腳本
SELECT INSTR('foobarbar', 'bar'), INSTR('xbar', 'foobar');分析
INSTR(str ,substr)
返回字符串 str 中子字符串 substr 第一次出現的位置
結果
3.如果子集中的所有 GTID 也在集合中,返回 true,否則返回false? ?GTID_SUBSET()?
腳本
SELECT GTID_SUBSET('3E11FA47-71CA-11E1-9E33-C80AA9429562:23', '3E11FA47-71CA-11E1-9E33-C80AA9429562:21-57');分析
GTID_SUBSET(set1,set2)
給定兩組全局事務標識符set1和set2,如果set1中的所有gtid也在set2中,則返回true。否則返回false。
結果
4.返回集合中不在子集中的所有 GTID? ?GTID_SUBTRACT()
腳本
SELECT GTID_SUBTRACT( '3E11FA47-71CA-11E1-9E33-C80AA9429562:21-57','3E11FA47-71CA-11E1-9E33-C80AA9429562:28' );分析
給定兩組全局事務標識符set1和set2,只返回set1中不屬于set2的gtid。
結果
5.十進制或字符串值的十六進制表示形式? ?HEX()
腳本
SELECT HEX('abc'),HEX(123);結果
6.提取小時? ?HOUR()
腳本
select hour('2022-12-12 15:20:30')結果
7.重癥監護室庫版本? ?ICU_SUBTRACT()
腳本
SELECT ICU_VERSION();分析
ICU_VERSION()函數返回用于支持正則表達式操作的 Unicode 國際組件 (ICU) 庫的版本。
結果
8.如果/否則構造? IF()
腳本
SELECT IF(1<2,'yes','no');分析
IF(expr1,expr2,expr3)
- 如果expr2和expr3生成一個字符串,則?結果是一個字符串。
- 如果expr2和expr3都是字符串,則?如果任一字符串是 區分大小寫。
- 如果expr2和expr3產生浮點數?值,則結果為浮點值。
- 如果expr2和expr3生成一個整數,則?結果是一個整數。
結果
9.空 if/else 構造? IFNULL()
腳本
SELECT IFNULL(1, 0),IFNULL(NULL, 10),IFNULL(1 / 0, 10),IFNULL(1 / 0, 'yes');分析
IFNULL(expr1,expr2)
如果expr1不符合要求字則返回expr2
結果
10.值是否在一組值內? ? IN()
腳本
SELECT 2 IN (0, 3, 5, 7), (3, 4) IN ((1, 2), (3, 4));分析
expr in (value1,...)
看expr是否能在后面找到對應的value值
結果
11.返回 IP 地址的數值????????INET_ATON()
腳本
SELECT INET_ATON('192.168.153.188');分析
給定 IPv4 網絡的點分四邊形表示形式 地址為字符串,返回一個整數,該整數表示 網絡字節順序中地址的數值(大 字節序)
結果
12.從數值返回 IP 地址? ? ? ? ?INET_NTOA()
腳本
SELECT INET_NTOA(3232274876);分析
給定一個按網絡字節順序排列的數字 IPv4 網絡地址, 返回地址的點分四邊形字符串表示形式 作為連接字符集中的字符串
結果
13.返回 IPv6 地址的數值???????INET6_ATON()
腳本
SELECT HEX(INET6_ATON('fdfe::5a55:caff:fefa:9089'));分析
給定字符串形式的 IPv6 或 IPv4 網絡地址,返回 表示地址數值的二進制字符串 按網絡字節順序(大端序)
結果
14.從數值返回 IPv6 地址? ? ? ?INET6_NTOA()
腳本
SELECT INET6_NTOA(INET6_ATON('fdfe::5a55:caff:fefa:9089'));分析
給定以數字表示的 IPv6 或 IPv4 網絡地址 形式為二進制字符串,返回 連接字符集中字符串形式的地址
結果
15.在指定位置插入子字符串,最多插入指定數量的字符? ? ? ? INSERT()
腳本
SELECT INSERT('Quadratic', 3, 4, 'What');分析
INSERT(str,pos,len,newstr)
把pos位置往后的字符替換為newstr,替換長度為len
結果
16.返回小于第一個參數的索引論點? ? ? ? INTERVAL()
腳本
SELECT INTERVAL(23, 1, 15, 17, 30, 44, 200);分析
INTERVAL(N,N1,N2,N3,..........)
其中,N是要判斷的數值,N1,N2,N3,...是分段的間隔。
這個函數的返回值是段的位置:
如果N<N1,則返回0,
如果N1<=N<N2,則返回1,
如果N2<=N<N3,則返回2。
所以,區間是前閉后開的。
結果
17.針對布爾值測試值? ? ? ? IS()
腳本
SELECT 1 IS TRUE, 0 IS FALSE, NULL IS UNKNOWN;結果
18.命名鎖是否可用? ? ? ? IS_FREE_LOCK()
腳本
SELECT IS_FREE_LOCK('lock1');分析
檢查鎖str是否可用,返回結果為0,說明指定名稱的鎖正在被使用。返回1則說明這個鎖尚未被使用。
結果
19.參數是否為 IPv4 地址? ? ? ? IS_IPV4()
腳本
SELECT IS_IPV4('192.168.152.188'), IS_IPV4('192.168.152.256');分析
如果參數是指定的有效 IPv4 地址,則返回 1 一個字符串,否則為 0
結果
20.參數是否為與 IPv4 兼容的地址? ? ? ? IS_IPV4_COMPAT()
腳本
SELECT IS_IPV4_COMPAT(INET6_ATON('::10.0.5.9')),IS_IPV4_COMPAT(INET6_ATON('::ffff:10.0.5.9'));分析
IS_IPV4_COMPAT () 函數檢查一個數字形式的 IPv6 地址是否是一個 IPv4 兼容的 IPv6 地址,如果是返回 1 ,否則返回 0?。 如果參數為 NULL ,該函數將返回 NULL
結果
21.參數是否為 IPv4 映射地址????????IS_IPV4_MAPPED()
腳本
SELECT IS_IPV4_MAPPED(INET6_ATON('::10.0.5.9')),IS_IPV4_MAPPED(INET6_ATON('::ffff:10.0.5.9'));分析
MySQL中的此函數采用以數字形式表示為二進制字符串的IPv6地址,由INET6_ATON函數返回。如果參數是有效的IPv4映射的IPv6地址,則返回1,否則返回0。 IPv4映射地址的一般格式是:: ffff:ipv4_address。
結果
22.參數是否為 IPv6 地址? ? ? ? IS_IPV6()
腳本
SELECT IS_IPV6('10.0.5.9'), IS_IPV6('::1');分析
如果參數是指定的有效 IPv6 地址,則返回 1 一個字符串,否則為 0
結果
23.針對布爾值測試值? ? ? ? IS NOT()
腳本
SELECT 1 IS NOT UNKNOWN, 0 IS NOT UNKNOWN, NULL IS NOT UNKNOWN;結果
24.非空值測試? ? ? ? IS NOT NULL()
腳本
SELECT 1 IS NOT NULL, 0 IS NOT NULL, NULL IS NOT NULL;結果
25.空值測試? ? ? ? IS NULL()
腳本
SELECT 1 IS NULL, 0 IS NULL, NULL IS NULL;結果
26.命名鎖是否正在使用中;如果返回連接標識符,則返回真? ? ? ? IS_USED_LOCK()
腳本
SELECT IS_USED_LOCK('lock1');分析
IS_USED_LOCK(str) 檢查鎖str是否正在被使用,返回結果為持有鎖的連接的連接ID,表示給定名稱的鎖正在被該連接使用,若鎖沒有被使用返回null。
結果
27.參數是否為有效的 UUID? ? ? ? IS_UUID()
腳本
SELECT IS_UUID('6ccd780c-baba-1026-9564-5b8c656024db');分析
如果參數是有效的字符串格式 UUID,則返回 1;如果 參數不是有效的 UUID
“有效”表示值的格式為 可以解析。也就是說,它具有正確的長度并包含 僅允許的字符(任何十六進制數字 字母大小寫,以及可選的破折號和大括號)。這 格式是最常見的:
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee還允許使用以下其他格式:
aaaaaaaabbbbccccddddeeeeeeeeeeee {aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee}官方解釋UUID?
結果
28.測試參數是否為 NULL? ? ? ? ISNULL()
腳本
SELECT ISNULL(1+1),isnull(1/0);結果
29.創建 JSON 數組? ? ? ? JSON_ARRAY()
腳本
SELECT JSON_ARRAY(1, "abc", NULL, TRUE, CURTIME());分析
JSON_ARRAY(value1[, value2[, ...]])
參數
value1[, value2[, ...]]
可選的。一些值,他們將被放在 JSON 數組中。
JSON_ARRAY()函數評估參數中的所有的值,并返回一個包含了所有參數的 JSON 數組。
這里可能有一些轉換發生:
- TRUE被轉換為true
- FALSE被轉換為false
- NULL被轉換為null
- 日期,時間,日期時間 被轉換為 字符串
結果
30.將數據追加到 JSON 文檔????????JSON_ARRAY_APPEND()
腳本
SELECT JSON_ARRAY_APPEND('[1, 2, 3]', '$', 4);分析
參數
json
必需的。被修改的 JSON 文檔。
path
必需的。添加新元素的路徑。一個有效的路徑表達式,它不能包含?或?。***
value
必需的。被添加到數組的新元素值。
結果
31.插入到 JSON 數組中? ? ? ? JSON_ARRAY_INSERT()
腳本
SET @json = '[1, [2, 3], {"a": [4, 5]}]'; SELECT JSON_ARRAY_INSERT(@json, '$[0]', 0);分析
JSON_ARRAY_INSERT(json, path, value[, path2, value2] ...)參數
json
必需的。被修改的 JSON 文檔。
path
必需的。插入新元素的數組元素位置。一個有效的路徑表達式,它不能包含?或?。比如?和?表示在數組的開頭插入新元素。***$[0]$.a[0]
value
必需的。入到數組的新元素值。
結果
32.將結果集作為單個 JSON 數組返回? ? ? ? JSON_ARRAYAGG()
腳本
CREATE TABLE `student_score` (`id` INT PRIMARY KEY AUTO_INCREMENT,`name` VARCHAR(255) NOT NULL,`subject` VARCHAR(255) NOT NULL,`score` INT NOT NULL );INSERT INTO `student_score` (`name`, `subject`, `score`) VALUES('Tom', 'Math', 80),('Tom', 'English', 90),('Tim', 'English', 98);SELECTname AS `Name`,JSON_ARRAYAGG(subject) AS `Subjects` FROM student_score GROUP BY name;分析
JSON_ARRAYAGG(expr)我們通常在 MySQL 中按如下方式使用 函數:JSON_ARRAYAGG()
SELECT JSON_ARRAYAGG(expr), ... FROM table_name [WHERE ...] [GROUP BY group_expr1, group_expr2, ...];參數
expr
必須的。它可以是一個列名,也可以是一個表達式。
結果
33.JSON 文檔是否在路徑中包含特定對象? ? ? ? JSON_CONTAINS()
腳本
SELECTJSON_CONTAINS('[1, 2, [3, 4]]', '2'),JSON_CONTAINS('[1, 2, [3, 4]]', '2', '$[2]');分析
JSON_CONTAINS(target_json, candidate_json) JSON_CONTAINS(target_json, candidate_json, path)參數
target_json
必需的。一個 JSON 文檔。
candidate_json
必需的。被包含的 JSON 文檔。
path
可選的。一個路徑表達式。
結果
34.JSON 文檔是否在路徑中包含任何數據????????JSON_CONTAINS_PATH()
腳本
SELECTJSON_CONTAINS_PATH('[1, 2, {"x": 3}]', 'one', '$[0]', '$[3]'),JSON_CONTAINS_PATH('[1, 2, {"x": 3}]', 'all', '$[0]', '$[3]');分析
JSON_CONTAINS_PATH(json, one_or_all, path[, path])參數
json
必需的。一個 JSON 文檔。
one_or_all
必需的。可用值:,?。它指示是否檢查所有的路徑。'one''all'
path
必需的。您應該至少指定一個路徑表達式。
結果
35.JSON 文檔的最大深度? ? ? ? JSON_DEPTH()
腳本
SELECT JSON_DEPTH('[]'), JSON_DEPTH('[1, 2]'), JSON_DEPTH('[1, [2, 3]]');分析
JSON_DEPTH(json)參數
json
必需的。一個 JSON 文檔。
- 一個空的數組、空的對象或者純值的深度是 1。
- 一個僅包含深度為 1 的元素的數組的深度是 2。
- 一個所有成員的值的深度為 1 的對象的深度是 2。
- 除此之外的其他 JSON 文檔的深度都大于 2.
結果
36.從 JSON 文檔返回數據? ? ? ? JSON_EXTRTACT()
腳本
SELECT JSON_EXTRACT('[1, 2, {"x": 3}]', '$[2].x', '$[1]', '$[0]');分析
JSON_EXTRACT(json, path, ...)參數
json
必需的。一個 JSON 文檔。
path
必需的。您應該至少指定一個路徑表達式。
結果
37.將數據插入 JSON 文檔? ? ? ? JSON_INSERT()
腳本
SET @array = '[1, [2, 3], {"a": [4, 5]}]'; # 在數組的開頭插入一個元素 SELECT JSON_INSERT(@array, '$[0]', 0, '$[3]', 6);分析
JSON_INSERT(json, path, value[, path2, value2] ...)參數
json
必需的。被修改的 JSON 文檔。
path
必需的。一個有效的路徑表達式。
value
必需的。插入的數據。
結果
38.來自 JSON 文檔的鍵數組? ? ? ? JSON_KEYS()
腳本
SELECT JSON_KEYS('{"x": 1, "y": 2, "z": 3}');分析
JSON_KEYS(json) JSON_KEYS(json, path)參數
json
必需的。一個 JSON 對象文檔。
path
可選的。路徑表達式。
結果
39.JSON 文檔中的元素數? ? ? ? JSON_LENGTH()
腳本
SELECTJSON_LENGTH('1'),JSON_LENGTH('true'),JSON_LENGTH('[1, 2]'),JSON_LENGTH('{"x": 1, "y": 2}') ;分析
JSON_LENGTH(json) JSON_LENGTH(json, path)參數
json
必需的。一個 JSON 文檔。
path
可選的。一個路徑表達式。
如果指定了 , 函數返回 JSON 文檔中由路徑指定的值的長度,否則返回 JSON 文檔的長度。函數按照如下規則計算 JSON 文檔的長度:pathJSON_LENGTH()JSON_LENGTH()
- 純值的長度是 1。比如,?,?,?,?,?的長度都是 1。1'"x"'truefalsenull
- 數組的長度是數組元素的數量。比如, 的長度是 2。[1, 2]
- 對象的長度是對象成員的數量。比如, 的長度是 1。{"x": 1}
- 內嵌的數組或對象不參與計算長度。比如, 的長度是 1。{"x": [1, 2]}
如果存在以下的情況,?函數將返回?:JSON_LENGTH()NULL
- 如果 JSON 文檔中不存在指定的路徑。
- 如果任意一個參數為?。NULL
結果
40.合并 JSON 文檔,替換重復鍵的值? ? ? ? JSON_MERGE_PATCH()
腳本
SELECTJSON_MERGE_PATCH('[1, 2]', '[2, 3]') as `[1, 2] + [2, 3]`,JSON_MERGE_PATCH('{"x": 1, "z": 7}', '{"x": 2, "y": 3}'),JSON_MERGE_PATCH('{"x": 1, "z": 7}', '{"x": 2, "z": null}');分析
JSON_MERGE_PATCH(json1, json2, ...)參數
json1
必需的。一個 JSON 對象文檔。
json2
必需的。一個 JSON 對象文檔。
MySQL 函數返回一個由參數指定的多個 JSON 文檔合并后的 JSON 文檔。執行的是替換合并,即在相同鍵值時,只保留后面的值。合并的規則如下:JSON_MERGE_PATCH()JSON_MERGE_PATCH()
如果第一個參數不是對象,則合并的結果與第二個參數合并空對象的結果相同。
如果第二個參數不是對象,則合并的結果為第二個參數。
如果兩個參數都是對象,則合并的對象具有以下成員:
- 只存在于第一個對象中的成員
- 只存在于第二個對象中且值不是?的成員null
- 存在于第二個對象且值不是?,并且在第一個對象中有對應的相同鍵的成員null
也就是說,只有兩個對象合并的結果才是對象。如果兩個參數為不同的 JSON 類型或者都不是 JSON 對象,則合并結果是第二個參數。
結果
41.合并 JSON 文檔,保留重復的鍵????????JSON_MERGE_PRESERVE()
腳本
SELECT JSON_MERGE_PRESERVE('[1, 2]', '[2, 3]', '[3, 4, 5]') as 合并數組,JSON_MERGE_PRESERVE('{"x": 1}', '{"x": 2, "y": 3}') as 合并對象,JSON_MERGE_PRESERVE('1', 'true', '"hello"', 'null') as 合并純值,JSON_MERGE_PRESERVE('{"x": 1}', '[1, 2]') as 合并數組和對象;分析
JSON_MERGE_PRESERVE(json1, json2, ...)參數
json1
必需的。一個 JSON 對象文檔。
json2
必需的。一個 JSON 對象文檔。
MySQL 函數返回一個由參數指定的多個 JSON 文檔合并后的 JSON 文檔。按照如下規則合并多個 JSON 文檔:JSON_MERGE_PRESERVE()JSON_MERGE_PRESERVE()
- 兩個數組合并為一個數組,保留所有數組中的元素。
- 兩個對象合并為一個對象,保留所有的鍵和值。
- 一個純值會被包裝成一個數組并作為數組進行合并
- 對象和數組合并時,會將對象包裝到一個數組中并作為數組進行合并。
結果
42.創建 JSON 對象? ? ? ? JSON_OBJECT()
腳本
SELECT JSON_OBJECT('name','Tim','age',20,'friend',JSON_OBJECT('name', 'Jim', 'age', 20),'hobby',JSON_ARRAY('games', 'sports')) ;分析
JSON_OBJECT(key, value[, key2, value2, ...])參數
key
必需的。對象中的鍵。
value
必需的。對象中的?的值key
結果
43.將結果集作為單個JSON 對象返回? ? ? ? JSON_OBJECTAGG()
腳本
CREATE TABLE `student_score` (`id` INT PRIMARY KEY AUTO_INCREMENT,`name` VARCHAR(255) NOT NULL,`subject` VARCHAR(255) NOT NULL,`score` INT NOT NULL );INSERT INTO `student_score` (`name`, `subject`, `score`) VALUES('Tom', 'Math', 80),('Tom', 'English', 90),('Tim', 'English', 98);SELECTname AS `Name`,JSON_OBJECTAGG(subject, score) AS `Scores` FROM student_score GROUP BY name;分析
SELECT JSON_OBJECTAGG(key_expr, value_expr), ... FROM table_name [WHERE ...] [GROUP BY group_expr1, group_expr2, ...];參數
key_expr
必須的。它的值作為結果對象中的鍵值對中的鍵。它可以是一個列名,也可以是一個表達式。
value_expr
可選的。它的值作為結果對象中的鍵值對中的值。它可以是一個列名,也可以是一個表達式。
結果
44.比較兩個JSON文檔是否擁有任何一個相同鍵值對或數組元素 JSON_OVERLAPS()
腳本
SELECT JSON_OVERLAPS('[1, 2, 3]', '[3, 4, 5]') as 比較數組,JSON_OVERLAPS('[1, 2, 3]', '[3, 4, 5]') as 比較對象,JSON_OVERLAPS('[1, 2, 3]', '[3, 4, 5]') as 比較純值和數組,JSON_OVERLAPS('1', '1') as 比較純值;分析
JSON_OVERLAPS(json1, json2)參數
json1
必需的。一個 JSON 文檔。
json2
必需的。另一個 JSON 文檔。
- 比較兩個數組時,如果兩個數組至少有一個相同的元素返回?,否則返回?。10
- 比較兩個對象時,如果兩個對象至少有一個相同的鍵值對返回?,否則返回?。10
- 比較兩個純值時,如果兩個值相同返回?,否則返回?。10
- 比較純值和數組時,如果值是這個數組中的直接元素返回?,否則返回?。10
- 比較純值和對象的結果為?。0
- 比較數組和對象的結果為?。0
- JSON_OVERLAPS()不會對參數的數據類型進行轉換。
結果
45.以可讀的格式打印 JSON 文檔? ? ? ? JSON_PRETTY()
腳本
SELECT JSON_PRETTY('[1, 2, 3]');分析
JSON_PRETTY(json)參數
json
必需的。一個 JSON 文檔或 JSON 類型的值。
結果
46.引用 JSON 文檔? ? ? ? JSON_QUOTE()
腳本
SELECTJSON_QUOTE('123'),JSON_QUOTE('NULL'),JSON_QUOTE('"NULL"');分析
JSON_QUOTE(str)參數
str
必需的。一個字符串。
下表中的特殊字符將使用反斜杠轉義:
| \" | 雙引號" |
| \b | 退格字符 |
| \f | 換頁符 |
| \n | 換行符 |
| \r | 回車符 |
| \t | 制表符 |
| \\ | 反斜杠\ |
| \uXXXX | Unicode 值 的 UTF-8 字節XXXX |
結果
47.從 JSON 文檔中刪除數據? ? ? ? JSON_REMOVE()
腳本
SELECT JSON_REMOVE('[0, 1, 2, [3, 4]]', '$[0]', '$[2]') as 從數組中刪除,JSON_REMOVE('{"x": 1, "y": 2}', '$.x') as 從對象中刪除;分析
JSON_REMOVE(json, path[, path] ...)參數
json
必需的。一個 JSON 文檔。
path
必需的。一個有效的路徑表達式
結果
48.替換 JSON 文檔中的值? ? ? ? JSON_REPLACE()
腳本
SET @obj = '{"x": 1}'; SELECT JSON_REPLACE(@obj, '$.x', 'true');分析
JSON_REPLACE(json, path, value[, path2, value2] ...)參數
json
必需的。被修改的 JSON 文檔。
path
必需的。一個有效的路徑表達式
value
必需的。新的數據。
結果
49.根據指定的 JSON 模式驗證一個 JSON 文檔 ? ? JSON_SCHEMA_VALID()
腳本
SET @schema = '{"id": "http://json-schema.org/geo","$schema": "http://json-schema.org/draft-04/schema#","description": "A geographical coordinate","type": "object","properties": {"x": {"type": "number","minimum": -90,"maximum": 90},"y": {"type": "number","minimum": -180,"maximum": 180}},"required": ["x", "y"]}';SET @json_doc = '{"x": 1, "y": 2}';SELECT JSON_SCHEMA_VALID(@schema, @json_doc);分析
JSON_SCHEMA_VALID(schema, json_doc)參數
schema
必需的。一個 JSON 模式。它必須是一個有效的 JSON 對象。
json_doc
必需的。被驗證的 JSON 文檔。
結果
50.根據指定的 JSON 模式驗證一個 JSON 文檔,并返回一個驗證報告? ? ? ? JSON_SCHEMA_VALIDATION_REPORT()
腳本
SET @schema = '{"id": "http://json-schema.org/geo","$schema": "http://json-schema.org/draft-04/schema#","description": "A geographical coordinate","type": "object","properties": {"x": {"type": "number","minimum": -90,"maximum": 90},"y": {"type": "number","minimum": -180,"maximum": 180}},"required": ["x", "y"]}';SET @json_doc = '{"x": 1, "y": 2}';SELECT JSON_SCHEMA_VALIDATION_REPORT(@schema, @json_doc) AS Report ;分析
JSON_SCHEMA_VALIDATION_REPORT(schema, json_doc)參數
schema
必需的。一個 JSON 模式。它必須是一個有效的 JSON 對象。
json_doc
必需的。被驗證的 JSON 文檔。
結果
函數大全1
函數大全2
函數大全4
函數大全5
函數大全6
函數大全7
函數大全8
總結
以上是生活随笔為你收集整理的MySQL --- 函数大全3的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何使用python批量修改txt文档
- 下一篇: 云端数据库配置