如何比較MariaDB中的兩個JSON值?兩個值如「{」b「:1,」a「:2}」和「{」a「:2,」b「:1}」應該相等。 MariaDB是否包含重新排序JSON值元素的函數?比較MariaDB中的JSON值
0
A
回答
0
如果您希望需要此類(不常見)比較,請在存儲之前以某種規範方式構建JSON。像你這樣簡單的JSON的顯而易見的方式是按字母順序排列鍵。如何做到這一點將取決於您用於JSON的「編碼」庫。
1
只要使用JSON_EXTRACT,JSON_EXTRACT並不關心JSON字符串中數字的位置。
查詢
SELECT
JSON_EXTRACT(@json_string_1, '$.a') AS a1
, JSON_EXTRACT(@json_string_2, '$.a') AS a2
, JSON_EXTRACT(@json_string_1, '$.b') AS b1
, JSON_EXTRACT(@json_string_2, '$.b') AS b2
FROM (
SELECT
@json_string_1 := '{"b":1,"a":2}'
, @json_string_2 := '{"a":2,"b":1}'
)
AS
json_strings
結果
a1 a2 b1 b2
------ ------ ------ --------
2 2 1 1
現在用這個結果作爲傳遞表,所以我們可以檢查,如果A1等於A2和B1等於B2。
查詢
SELECT
1 AS json_equal
FROM (
SELECT
JSON_EXTRACT(@json_string_1, '$.a') AS a1
, JSON_EXTRACT(@json_string_2, '$.a') AS a2
, JSON_EXTRACT(@json_string_1, '$.b') AS b1
, JSON_EXTRACT(@json_string_2, '$.b') AS b2
FROM (
SELECT
@json_string_1 := '{"b":1,"a":2}'
, @json_string_2 := '{"a":2,"b":1}'
)
AS
json_strings
)
AS json_data
WHERE
json_data.a1 = json_data.a2
AND
json_data.b1 = json_data.b2
結果
json_equal
------------
1
相關問題
- 1. Sphinxsearch的JSON值比較
- 2. 訪問和比較JSON值
- 3. MariaDB比較數據庫模式
- 4. JavaScript的JSON比較
- 5. 的Javascript JSON比較
- 6. Hamcrest matcher比較來自JSON的double值
- 7. ios比較來自json的布爾值
- 8. 如何比較sqlite表的值與android中的json標記值
- 9. 在SQL比較中比較空值
- 10. 基於鍵比較添加JSON值
- 11. 過濾JSON並比較數組值
- 12. 如何比較「空」 JSON在Python值
- 13. 解析JSON在JS和比較鍵值
- 14. ng-if用於比較動態json值
- 15. 比較兩個JSON
- 16. 比較JSON和BSON
- 17. 比較json數組
- 18. 比較快的方式來比較值
- 19. 比較集合中的值
- 20. 比較angularjs中的值
- 21. 比較兩列中的值
- 22. 比較數組中的值
- 23. 比較Android中的int值
- 24. 比較JSON響應的
- 25. 比較列的值
- 26. 的QByteArray值比較
- 27. 如何比較基於密鑰C++的JSON中的值
- 28. 我想將mariaDB中加密的值與用戶在登錄中設置的值進行比較
- 29. 比較和比較的負值和正值返回值
- 30. 比較值