关键词:
文章目录
1.问题描述
在 MySQL 中,并没有内置的数组数据类型。但是,MySQL 提供了一些可以实现类似数组功能的机制,如使用字符串来存储由逗号分隔的值,使用 JSON 类型来存储数组数据等。
假设您正在使用 GORM v2 和 MySQL 数据库,并且您的数据表中有一个名为 data 的 JSON 类型的列,其中存储了一个字符串数组,您想要查询该数组是否包含某个元素。
import (
"gorm.io/datatypes"
)
type MyModel struct
ID uint
Data datatypes.JSON `gorm:"column:data"`
2.使用 JSON_CONTAINS()
MySQL JSON_CONTAINS() 函数可以用于判断 JSON 数组中是否包含某个元素。
我们可以使用原生 SQL 作为 GORM 的内联条件来判断数组中是否包含某值。
var rows []MyModel
DB.Where(fmt.Sprintf(`JSON_CONTAINS(data,'"%v"')`, YOUR_STR_VALUE)).Find(&rows)
JSON_CONTAINS 函数还可以判断 JSON 对象中某个字段的值是否为指定的值,具体用法可参见 MySQL 官网的介绍。
3.使用 gorm.io/datatypes
gorm.io/datatypes 是 GORM v2 版本中引入的一个包,提供了一些数据库特定的数据类型,例如 JSON、HSTORE、ARRAY、UUID 等。
datatypes 支持对 JSON 数组的包含查询。
var rows []MyModel
DB.Where(datatypes.JSONArrayQuery("data").Contains("YOUR_STR_VALUE")).Find(&rows )
参考文献
OpenAI ChatGPT
12.18.3 Functions That Search JSON Values
mysql,查询json数组字段中包含某个元素的sql语句 - CSDN博客
集合框架(代码片段)
...中包含的元素个数,就是集合的长度。-->isEmpty();<!--判断集合中是否含有元素。-->contains();<!--判断集合中是否包含某一指定元素,返回一个boolean值。-->add();<!--向集合中添加某一元素。-->remove();<!--从集合中删除... 查看详情
jquery里判断数组内是否包含了指定的值或元素的方法(代码片段)
本文讲的是在jquery里,如何判断一个数组里是否包含了指定的值,变量,或其它对象元素的方法。在jquery里,我们可以用$.inArray来判断一个数组里是否包含了指定的值或其它对象元素,来看一个简单的实例:vararr=["aijquery","j... 查看详情
在java中如何高效的判断数组中是否包含某个元素(代码片段)
importorg.apache.commons.lang3.ArrayUtils;publicstaticbooleanuseArrayUtils(String[]arr,StringtargetValue)returnArrayUtils.contains(arr,targetValue); 查看详情
js判断字符串与字符串相互包含,以及数组是否包含某个元素;
...字符串? 实现: varstr ="adc"; 判断str中是否包含"c" if(str.indexOf("c")>0){ alert(“str中包含字符串c ”) }需求:判端一个数组是否包含某一个元素? ... 查看详情
js判断某变量是否为某数组中的一个值的3种方法(代码片段)
1.正则表达式js中判断某个元素是否存在于某个js数组中,相当于PHP语言中的in_array函数。1Array.prototype.in_array=function(e)2varr=newRegExp(‘,‘+e+‘,‘);3return(r.test(‘,‘+this.join(this.S)+‘,‘));4; 用法如下:1vararr=newArray([‘b‘,2,‘a‘, 查看详情
markdown判断数组中是否存在某一数值(代码片段)
javascript判断数组是否包含指定元素的方法
本文实例讲述了JavaScript判断数组是否包含指定元素的方法。分享给大家供大家参考。具体如下:这段代码通过prototype定义了数组方法,这样就可以在任意数组调用contains方法/***Array.prototype.[methodname]allowsyoutodefine/overwriteanobjectsmeth... 查看详情
判断页面的点击事件是否发生在某元素上(代码片段)
...tps://www.cnblogs.com/veinyin/p/10999265.html 有时我们需要判断页面的点击事件是否发生在某元素上使用场景如 自己实现下拉框 点击页面其它地方时下拉部分隐藏下面代码为vue场景下//template中div(ref="myDiv")//created中添加clic... 查看详情
js中如何判断数组中是不是包含某一元素
可以直接使用数组的indexOf方法来判断,如果元素存在于数组中,那么返回元素在数组中的下标值,如果不存在,那么返回-1,但是该方法在某些版本的IE中是不起作用,所以建议使用jquery的inArray方法,该方法返回元素在数组中的... 查看详情
判断list是否包含某元素job
staticbooleanlistIn(Listlist, anyTypeelement) boolean ret=false; ListEnumeratorlistE=list.getEnumerator(); ; if(list.typeId()!=typeof(element)) ret=false; else while(listE.moveNext()) ... 查看详情
ios中判断某项元素是否在数组中
判断数组中书否含有某个元素NSString*str=@"数组";NSArray*array=@[@"who",@"数组",@"array",@"3"];BOOLisbool=[arraycontainsObject:str];NSLog(@ 查看详情
如何高效地判断数组中是否包含某特定值
如何检查一个未排序的数组中是否包含某个特定的值,这是在Java中非常实用并且频繁使用的操作。另外,检查数组中是否包含特定值可以用多种不同的方式实现,但是时间复杂度差别很大。下面,我将为大家展示各种方法及其... 查看详情
js判断某个元素是否属于一个数组(代码片段)
functionIsInArray(arr,val) vartestStr=‘,‘+arr.join(",")+","; returntestStr.indexOf(","+val+",")!=-1; 查看详情
如何高效地判断数组中是否包含某特定值
如何检查一个未排序的数组中是否包含某个特定值,这是一个在Java中非常实用并且频繁使用的操作。检查数组中是否包含特定值可以用多种不同的方式实现,但是时间复杂度差别很大。下面... 查看详情
es6新了解(代码片段)
对es6算不上很了解,记录一下新发现的es6妙招。1.判断字符串或数组中是否存在某个元素: Array.prototype.includes方法返回一个布尔值,表示某个数组是否包含给定的值,与字符串的includes方法类似//判断字符串中是否存在某字符... 查看详情
前端面试javascript—js判断数组中是否包含某个值(代码片段)
方法一:array.indexOf()此方法判断数组中是否存在某个值,如果存在,则返回数组元素的下标,否则返回-1vararr=[1,2,3,4];varindex=arr.indexOf(3);console.log(index);//2方法二:array.includes()此方法判断数组中是否存在某... 查看详情
前端面试javascript—js判断数组中是否包含某个值(代码片段)
方法一:array.indexOf()此方法判断数组中是否存在某个值,如果存在,则返回数组元素的下标,否则返回-1vararr=[1,2,3,4];varindex=arr.indexOf(3);console.log(index);//2方法二:array.includes()此方法判断数组中是否存在某... 查看详情
mysql学习笔记json类型(代码片段)
...SON值JSON_OBJECTJSON_ARRAYJSON_QUOTE转义字符查询JSON值JSON_CONTAINS判断包含值JSON_CONTAINS_PATH判断包含路径JSON_EXTRACT(简写->)提取值JSON_KEYS返回所有键JSON_VALUE返回值JSON_OVERLAPS对比JSONJSON_SEARCH返回匹配路径MEMBEROF数组中匹配元素... 查看详情