本文目录一览:
- 1、有没有在MySQL FIND
- 2、mysql中有没有和find
- 3、MySQL查询某个字段包含某个值--FIND_IN_SET
- 4、JPA 的 Criteria 查询,怎么使用 Mysql 的 find
- 5、sqlserver 中有没有mysql中find
- 6、Mysql数据库中FIND_IN_SET();在HIbernate中怎么使用。比如,如何传参;
有没有在MySQL FIND
mysql手册中find_in_set函数的语法:
FIND_IN_SET(str,strlist)
假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。
一个字符串列表就是一个由一些被‘,’符号分开的子链组成的字符串。如果第一个参数是一个常数字符串,而第二个是type SET列,则 FIND_IN_SET() 函数被优化,使用比特计算。
如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。这个函数在第一个参数包含一个逗号(‘,’)时将无法正常运行。
mysql SELECT FIND_IN_SET('b','a,b,c,d');
- 2 因为b 在strlist集合中放在2的位置 从1开始
mysql中有没有和find
弄个测试表来说明两者的区别
1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE `test` (
`id` int(8) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`list` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
)
INSERT INTO `test` VALUES (1, 'name', 'daodao,xiaohu,xiaoqin');
INSERT INTO `test` VALUES (2, 'name2', 'xiaohu,daodao,xiaoqin');
INSERT INTO `test` VALUES (3, 'name3', 'xiaoqin,daodao,xiaohu');
原来以为MySQL可以进行这样的查询:
select id, list, name from table where 'daodao' IN (list); (一)
实际上这样是不行的,这样只有当name是list中的第一个元素时,查询才有效,否则都得不到结果,即使'daodao'真的在list中。
MySQL查询某个字段包含某个值--FIND_IN_SET
文章中有标签字段(label),存的是标签ID字符串。
现在想在文章列表进行筛选,根据标签筛选出对应标签的文章
但是不能用like。SO,FIND_IN_SET函数就大显身手了
FIND_IN_SET(str,strlist)
str 要查询的字符串
strlist 字段名 参数以”,”分隔 如 (1,2,6,8,10,22)
查询字段(strlist)中包含(str)的结果,返回结果为null或记录
倘若想搜索标签ID为2的文章:
SELECT id,label FROM dk_info where FIND_IN_SET ('2',label)
倘若想搜索标签ID为3的文章:
SELECT id,label FROM dk_info where FIND_IN_SET ('3',label)
JPA 的 Criteria 查询,怎么使用 Mysql 的 find
string connection = “Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=” + filetoread;
//从表中查询所有数据
string sqlQuery = “select * from Student”;
//打开数据库
OdbcConnection con = new OdbcConnection(connection);
//对数据库进行操作
OdbcCommand cmd = new OdbcCommand(sqlQuery,con);
sqlserver 中有没有mysql中find
在mysql中,有时我们在做数据库查询时,需要得到某字段中包含某个值的记录,但是它也不是用like能解决的,使用like可能查到我们不想要的记录,它比like更精准,这时候mysql的FIND_IN_SET函数就派上用场了!
Mysql数据库中FIND_IN_SET();在HIbernate中怎么使用。比如,如何传参;
其实是可以使用的,我今天就遇到这个问题,但是必须 这么用 :
在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 表名.属性名