2016-03-04 38 views
0

我需要選擇幫助。我如何獲得具有獨特屬性的行,例如我在db中有2個json字符串。MySQL 5.7和SELECT DISTINCT JSON屬性

  1. {「name」:[「name1」]};
  2. {「name」:[「name2」,「name1」]};
  3. {「name」:[「name3」,「name4」]};
  4. {「name」:[「name3」]};

如果我嘗試只是SELECT DISTINCT data->"$.name",所以我得到所有2個字符串,但我需要檢查每個參數,如果有一些是以前不顯示它。 這可能嗎?

////我想得到1和3行,cos 2和4包含我們已經有的名字(我不關心name2在我的例子name2中的等效name1)。

+0

不知道我在追隨。你想獲得這個樣本數據的結果是什麼? – Mureinik

+0

只是第一個字符串,現在我得到所有2,但如果每個字符串都是{「name」:[「name1」]}; {「name」:[「name1」};它只返回1個字符串。我需要檢查每個參數在$ .name中是唯一的。 – osadchi

+0

不清楚「param」是什麼意思。整個名稱列是一個參數,還是JSON數組中的每個字符串都是一個參數?換句話說,如果輸出是[「name1」],[「name2,」name1「]或者它應該是[」name1「],[」name2「]?或者你想要輸出爲字符串,而不是JSON我建議你編輯你的問題,以顯示你想要的實際輸出 – Bampfer

回答

0
SELECT DISTINCT JSON_UNQUOTE(features->"$.name[0]") as name 
FROM data WHERE JSON_LENGTH(features->"$.name") = 1 

所以,我只是把attr名字只有1個項目的結果。而且我們可以檢查獨特的。這不是最好的解決方案,但我沒有另一個)