我有一个列以数组形式存储值,如下所示
table_name:records
column_name:数据样本
第1行:['John','Adam','Mike']
我正在尝试应用类似下面的查询
SELECT * FROM records WHERE data IN('Adam');
找到0结果。
答案 0 :(得分:0)
带有一个参数的IN子句与WHERE data = 'Adam'
基本相同,用于搜索确切的值。
由于您的行包含与Adam不同的字符串,因此不会返回任何结果。
对您的情况的查询应该是这样的:
SELECT * FROM records WHERE data LIKE '%Adam%';
答案 1 :(得分:0)
如果您使用JSONArray,则可以尝试使用JSON_CONTAINS()
函数进行查询。
你可以查询如下: -
SELECT * FROM records WHERE JSON_CONTAINS(data, '[Adam]');
其中数据是包含数组的列。