MySQL中的JSON數據類型與其他數據類型之間的轉換可以通過一些內置函數來實現
將JSON值轉換為字符串:
使用JSON_UNQUOTE()函數可以將JSON值轉換為未加引號的字符串。例如:
SELECT JSON_UNQUOTE(JSON_EXTRACT('{"name": "John"}', '$.name')) AS name;
這將返回John,而不是"John"。
將JSON值轉換為數字:
使用JSON_EXTRACT()或->>操作符可以將JSON值轉換為數字。例如:
SELECT JSON_EXTRACT('{"age": 30}', '$.age') AS age;
這將返回數字30。
將JSON值轉換為日期:
使用STR_TO_DATE()函數和JSON_UNQUOTE()函數可以將JSON值轉換為日期。例如:
SELECT STR_TO_DATE(JSON_UNQUOTE(JSON_EXTRACT('{"dob": "2022-01-01"}', '$.dob')), '%Y-%m-%d') AS dob;
這將返回日期2022-01-01。
將JSON值轉換為布爾值:
使用JSON_EXTRACT()或->>操作符可以將JSON值轉換為布爾值。例如:
SELECT JSON_EXTRACT('{"isActive": true}', '$.isActive') AS isActive;
這將返回布爾值true。
將其他數據類型轉換為JSON值:
使用CAST()函數或CONVERT()函數可以將其他數據類型轉換為JSON值。例如:
SELECT CAST('{"name": "John"}' AS JSON) AS jsonData;
這將返回JSON對象{"name": "John"}。
總之,在MySQL中,可以使用內置函數輕松地在JSON數據類型和其他數據類型之間進行轉換。請根據需要選擇合適的函數。