Mysql

MariaDB:如何比較 JSON 值?

  • September 28, 2021

如何比較 MariaDB 中的 JSON 值?

MariaDB 10.2 和 10.3 - 失敗:

SELECT CAST('{"q":2}' AS JSON);

回報:

SQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'JSON)' at line 1

MySQL 5.7.19 - 作品:

SELECT CAST('{"num": 1.1, "date": "2015-11-01"}' AS JSON) = CAST('{"date": "2015-11-01", "num": 1.1}' AS JSON);

回報:1

來源:http ://rpbouman.blogspot.com/2015/11/mysql-few-observations-on-json-type.html

其他類似問題

我發現了這個,但我的 JSON 更複雜。

從 10.3.7 開始,mariadb server 上沒有原生 JSON 類型。出於與 MySQL 的兼容性原因,JSON 只是 LONGBLOB 的別名:https ://mariadb.com/kb/en/library/json-data-type/

雖然有一個函式庫可以使用 JSON https://mariadb.com/kb/en/library/json-functions/(選擇並轉換它);沒有真正的原生類型,所以這些函式的所有輸入和輸出實際上都是字元串類型。雖然您可以在技術上使用儲存過程實現遞歸 json 解析器,但我建議您只閱讀它並將其與客戶端庫或其他客戶端實用程序進行比較(例如,https://stackoverflow.com/questions/25851183/how-to -compare-two-json-objects-with-the-same-elements-in-a-different-order-equa)。

儘管 MariaDB 聲稱它是 MySQL 的直接替代品,但由於 MariaDB 不再是 100% 兼容的分支,一個軟體上可用的功能在另一個軟體上不再可用,反之亦然。

引用自:https://dba.stackexchange.com/questions/208481