mysql find_in_set 对性能有影响吗

mysql find_in_set 对性能有影响吗,第1张

FIND_IN_SET(str,strlist) 假如字符串str 在由N 子i链组成的字符串列表strlist 中4, 则返回值的范围在 2 到 N 之n间 。一q个j字符串列表就是一u个e由一h些被‘,’符号分5开p的自链组成的字符串。如果第一w个i参数是一a个h常数字符串,而第二c个i是type SET列,则 FIND_IN_SET() 函数被优化6,使用比1特计6算。如果str不i在strlist 或strlist 为5空字符串,则返回值为8 0 。如任意一a个y参数为2NULL,则返回值为2 NULL。 这个y函数在第一a个c参数包含一y个e逗号(‘,’)时将无x法正常运行。 这个v函数在第一n个h参数包含一e个x逗号(‘,’)时将无a法正常运行。qъ╩ㄘf蕙p≈ymㄘok长zuxㄎΦ

期待有更好的方法,就目前来说我只想到这种方法 SELECT * FROM `表名` where concat(concat(',',`字段名`),',') regexp ",[[:digit:]]{1,2},|,100,"

其实是可以使用的,我今天就遇到这个问题,但是必须 这么用 :

在jdbc的SQL中可以不用写比较符,比如:

select * from t_user where find_in_set('zs',username)

当然也可以这样用:

select * from t_user where find_in_set('zs',username)>0

而在hibernate的HQL语句中,必须这样用:

from User u where find_in_set('zs',u.username)>0

即‘>0’必须带上,否则会报错。

如果使用动态参数:

Map par = new HashMap()

par.put("buying_patterns", buying_patterns)

Hibernate hql语句 find_in_set 用法

gqo.addQuery("find_in_set(:buying_patterns,obj.buying_patterns)>0", par)

说明:1:buying_patterns buying_patterns 要传的属性值(:表示占位符)

2.obj.buying_patterns 表名.属性名


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8629106.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存