日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL --- 函数大全3

發布時間:2023/12/20 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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制表符
    \\反斜杠\
    \uXXXXUnicode 值 的 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的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。