MySQL8.0.17以降で可能になりました
このようなもの(テストされていません)
CREATE TABLE posts (
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
tags JSON,
INDEX tags( (CAST(tags AS VARCHAR(32) ARRAY)) )
);
このように使用します:
SELECT * FROM posts
WHERE JSON_CONTAINS(tags, CAST('[tag1, tag2]' AS JSON));
詳細とサンプルはこちら: https://dev.mysql.com /doc/refman/8.0/en/json.html