1
我試圖複製以下LIKE查詢使用全文搜索JSON
數據;MySQL全文搜索JSON數據
SELECT * FROM table
WHERE response LIKE '%"prod_id": "foo"%'
AND response LIKE '%"start_date": "2016-07-13"%'
在我的數據庫上面的查詢返回28行
這是我的嘗試:
SELECT * FROM table
WHERE MATCH(response)
AGAINST('+"\"prod_id\": \"foo\"",+"\"start_date\": \"2016-07-13\""')
然而,這將返回4500行(與運行第一個查詢只爲prod_id〜1,900行當在日期上運行第一個查詢時)
這是我的理解,+"text here"
將指示需要字,並且字面雙引號(存在於JSON
數據中)應該被轉義,並且該,
將指示我正在查找的兩個字符串之間的分隔。我不正確的理解是什麼?無論如何,將它作爲全文查詢運行是否有意義?
我認爲你忘了加上[IN BOOLEAN MODE](https://dev.mysql.com/doc/refman /5.5/en/fulltext-boolean.html)修飾符來激活這些布爾運算符。默認修飾符是[IN NATURAL LANGUAGE MODE](http://dev.mysql.com/doc/refman/5.7/en/fulltext-natural-language.html),它不適合您的需要。 – Sevle
謝謝@Sevle當然是問題的一半 - 我需要的調整的其餘部分在下面。 – Novocaine