JSON是一種針對JavaScript對象的輕量級數據交換格式。在MySQL 5.7版本中,提供了對JSON數據類型的支持,包括JSON對象、JSON數組和JSON常量。而JSON_CONTAINS()函數可以用來判斷JSON數組或JSON對象中是否包含指定的值,如果存在則返回1,否則返回0。
下面是使用JSON_CONTAINS()函數的語法:
JSON_CONTAINS(json_doc, val[, path])
其中json_doc是要查詢的JSON文檔,val是要查詢的值,path是可選的,表示要查詢的路徑。如果指定了path,則函數只匹配該路徑下的值。否則,函數將查找整個JSON文檔。
下面是使用JSON_CONTAINS()函數的示例:
CREATE TABLE my_table ( id INT, info JSON ); INSERT INTO my_table (id, info) VALUES (1,'{"name":"John", "age":30, "city":"New York"}'); INSERT INTO my_table (id, info) VALUES (2,'{"name":"Jane", "age":25, "city":"Los Angeles"}'); INSERT INTO my_table (id, info) VALUES (3,'{"name":"Bob", "age":35, "city":"Chicago"}'); SELECT * FROM my_table WHERE JSON_CONTAINS(info, 'Los Angeles', '$.city') = 1;
以上示例中,我們創建了一個名為my_table的表,包含兩列:id和info。info列的數據類型是JSON。然后向表中插入了三條數據。最后使用JSON_CONTAINS()函數查詢info列中是否包含城市為Los Angeles的記錄,結果返回id為2的記錄。
除了JSON_CONTAINS()函數,MySQL 還提供了其他一些跟JSON相關的函數,如JSON_EXTRACT()、JSON_ARRAY()等,這些函數都可以幫助我們更方便地處理JSON數據。