MySQL 5.7以降で次のようなテーブルJSONを入れています。

CREATE TABLE `p` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `parameter` json NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

INSERT INTO `p` (`id`, `parameter`) VALUES (1,'[{\"a\": \"hoge\", \"parameter\": {\"m\": 4, \"i\": 5}, {\"a\": \"fuga\", \"parameter\": {\"apple\": \"red\"}}]');

ここで新規データが来たときに、parameterと完全一致で検索をしたいのですが、どうすればいいでしょうか?JSON_CONTAINSを使ってみたのですが、これは部分検索なので[{\"a\": \"fuga\", \"parameter\": {\"apple\": \"red\"}}]というデータが来た場合にも1がヒットしていまいます。しかし1がヒットしてほしいのは[{\"a\": \"hoge\", \"parameter\": {\"m\": 4, \"i\": 5}, {\"a\": \"fuga\", \"parameter\": {\"apple\": \"red\"}}]が来た場合のみです。

事前にJSON_EXTRACT + CASTでの文字列検索も試したのですが、JSON_EXTRACTで取り出される配列はkeyの順番が壊れてしまい、上手くいきませんでした。