![](/img/trans.png)
[英]i need to get data from mysql DB and put it to a json array and use the json array for textbox auto complete
[英]I need to use index the column of json data in mysql
我的數據庫是MySQL,我發現沒有JSON類型,只有文本。 但是在我的情況下,我需要存儲JSON含義的數據,並在JSON數據的哈希鍵上使用索引。 因此,“文本”類型不是正確的方法。 順便說一句,我無法將JSON數據分為不同的列,因為我不知道JSON中的鍵。
我真正需要的是一種通過使用index或sth在MySQL中通過JSON關鍵字搜索JSON數據的解決方案,因此搜索速度可以是快速且可以接受的。
如果無法將數據規范化為RDBMS可讀格式,則不應使用MySQL。
NoSQL數據庫可能是更好的方法。 MySQL的優勢是可以處理關系數據。
您正在嘗試通過圓孔裝配方形物體:)
select concat('{"objects\\":[' ,(select group_concat( concat('{"id":"',id, '","field":"',field,'"}') separator ',') from placeholder) ,']}');
任何更通用的內容都需要動態sql
我認為您的情況需要使用Levenshtein距離算法 。 基本上,您需要使用文本片段(針頭)對未知數量(干草堆)進行文本搜索。 而且您需要它是快速的,因為索引是不可能的。
MySQL有一個鮮為人知的(或很少使用的)功能,您可以通過它來創建用戶定義的函數 。 該函數本身是一個存儲過程,為了提高速度,可以使用C ++進行編譯。 UDF在查詢中本機使用,就像它們是常規MySQL語法的一部分一樣。
以下是在MySQL中實現Levenshtein用戶定義函數的詳細信息。
查詢示例可能是...
SELECT json FROM my_table WHERE levenshtein('needle') < 5;
5
代表“編輯距離”,實際上允許定位近距離比賽。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.