如果我有一個名爲numbers
的JSON列的MySQL表和該列(整數數組)中有[1, 2, 3]
的記錄,那麼如何更新該記錄以刪除2
(因此它變成[1, 3]
)?如何從MySQL的JSON數組中刪除一個數字?
回答
我正在尋找一個答案:
update tbl set numbers = json_remove(`numbers`, '$."4"');
要配備一定數量得到的行我的自我和來到這個問題,不想使用對象,我繼續搜索。但是,我發現了一個解決方案,你需要使用和json_remove
組合json_search
下從表tbl
和列numbers
UPDATE tbl
SET numbers = JSON_REMOVE(
numbers, replace(json_search(numbers, 'one', 1), '"', '')
)
WHERE json_search(numbers, 'one', 1) IS NOT NULL
json_search
刪除值1返回,其中的路徑價值是,即。"$[0]"
replace
除去"
否則將與json_remove
json_remove
發生錯誤將從json_search
結果
的Et瞧,您的值被刪除刪除路徑。
注:這是假定沒有重複的值
不錯。感謝您的貢獻。 –
請記住,如果存儲整數值(https://bugs.mysql.com/bug.php?id=79316),則JSON_SEARCH不會找到整數。 – Karim
您可以使用JSON_UNQUOTE而不是替換https://dev.mysql.com/doc/refman/5.7/en/json-modification-functions.html#function_json-unquote –
直到有人找到更好的解決方案,我只是將其轉換爲對象:{"1": 1, "2": 2, "3": 3}
。是的,這是醜陋的,並佔用更多的磁盤空間,但您可以獲得無需擔心重複的好處。
要增加號碼:
update tbl set numbers = json_insert(`numbers`, '$."4"', 4);
要刪除號碼:
select * from tbl where json_contains_path(`numbers`, 'one', '$."4"');
- 1. 如何從另一個數組中包含的數組中刪除數字?
- 2. 如何將一個數字刪除到一個java數組中?
- 3. 數組函數從數組中刪除第一個字符
- 4. 如何從數組中刪除字符
- 5. 從json對象中刪除json數組
- 6. 從json數組中刪除數據
- 7. 從json數組中刪除數據
- 8. 如何從numpy數組列表中刪除一個numpy數組?
- 9. 如何從多維數組中刪除一個空數組php
- 10. 如何從另一個數組中刪除數組元素?
- 11. 如何從數組中刪除數組?
- 12. 如何從數組中刪除最後一個字符?
- 13. 如何從對象數組中刪除一個字段?
- 14. 從列MySql中刪除第一個數
- 15. 在MySQL中刪除字符串json數組中的元素
- 16. 如何從數組中刪除某個數字?
- 17. 如何在JavaScript數組中的一個數字後刪除7個數字?
- 18. 如何刪除一個有數字的mysql數據庫
- 19. 如何從一組中刪除數字字符串?
- 20. 從數組中刪除一個對象?
- 21. 從一個數組中刪除
- 22. 從數組中刪除一個元素
- 23. 從數組中刪除JSON對象
- 24. 從PHP JSON對象中刪除數組
- 25. 從JSON數組中刪除括號React
- 26. 如何從iphone中的數組中刪除一個對象
- 27. 如何從一個數組中的項目中刪除模式
- 28. 如何從iOS中的JSON數組中刪除空對象?
- 29. 如何從golang中的JSON數組中刪除元素?
- 30. 如何從數組中刪除對象,數組包含字典
你想這樣做,使用查詢或使用任何腳本語言如PHP或Python – rodelarode
與代碼這樣做是沒有問題的;由於該集合非常龐大,我正在尋找一個僅限於sql的解決方案。 –