模糊查询能对t为int类型型的么

给人生一个梦,给梦一条路,给路一个方向!
mongotemplate mongodb的各种操作 模糊查询 精确查询 等等
本意是想查查mongo数据库的int类型的like怎么查,但是好像没 解决这个问题。
一. 常用查询:
1. 查询一条数据:(多用于保存时判断db中是否已有当前数据,这里 is& 精确匹配,模糊匹配 使用 regex...)
[javascript]&&
2. 查询多条数据:linkUrl.id 属于分级查询
[javascript]&&
3. 模糊查询:
[javascript]&&
最下面,我在代码亲自实践过的模糊查询,只支持字段属性是字符串的查询,你要是查字段属性是int的模糊查询,还真没辙。
4. gte: 大于等于,lte小于等于...注意查询的时候各个字段的类型要和mongodb中数据类型一致
[javascript]&&
查询字段不存在的数据
[javascript]&&
查询字段不为空的数据
查询或语句:a || b
查询且语句:a && b
查询一个属性的子属性,例如:查下面数据的key2.keyA的语句
5. 查询数量:
[javascript]&&
6. 更新一条数据的一个字段:
[javascript]&&
7. 更新一条数据的多个字段:
[javascript]&&
8. 删除数据:
[javascript]&&
9.保存数据:
[javascript]&&
我自己使用的例子:
mongo数据库里面像搜索数据类型为int的字段,
然后想使用like语句来着,但是没有实现,
因为我的port端口存的事int属性,
但是在列表页面,要支持字段搜索的话,然后我的int类型的端口字段,就不支持搜索了,
然后就考虑,既然是端口,那就是一个固定的,唯一的,
为什么要支持like语句呢?
你搜索端口号是1的就搜出来的是1的端口号就对了,而不是1,11,21,,,等等都个搜索出来,
对去其他的字符串 类型的字段,你使用like语句搜索,
我是没意见的,
要是非得 实现int类型的like搜索,
我 也不知道啊。
只有改数据结构,
让int型变成string型的话,
就可以like搜索啦。
关于mongodb按照字段模糊查询方法
MySql 模糊查询
java 中 mongodb的各种操作 模糊查询 精确查询 等等
SQL 模糊查询条件的四种匹配模式
MongoDB模糊查询
mongodb 中的模糊查询----(like 查询语句) 在mongo VUE里面怎么写查询
mongodb子集合的模糊查询
spring mongodb 模糊查询
用MongoTemplate查询指定字段的正确奥义
没有更多推荐了,模糊查询(排除%等通配符并支持不连续关键字查询) - 王者之巅 - 博客园
前段时间我在开发项目的时候,就关于模糊查询遇到了一点问题,主要是有两大问题:1、通配符问题;2、不连续关键字查询。下面我一一说出我是怎么解决的:
1、统配符问题
比如说在搜索框中输入'%'、'_'、'/'时会出错,因为这些特殊符号在sql语句查询的时候是有他特定的意义的,所有这里要对前台传过来的keyword搜索内容进行排除通配符处理,我是在工具类中写了一个方法代码如下:
* 根据搜索特殊字符串
* @param id
* @return 取不到返回null
*/ public static String specialStr(String str){
Integer index=str.indexOf("%");
Integer index1=str.indexOf("_");
Integer index2=str.indexOf("\\");
StringBuffer stringBuffer = new StringBuffer(str);
if(index!=-1) {
stringBuffer.insert(index, "\\");
if(index1!=-1) {
stringBuffer.insert(index1, "\\");
if(index2!=-1) {
stringBuffer.insert(index2, "\\");
return stringBuffer.toString();
然后在controller层导入该工具类,使用specialStr方法就ok了,代码如下:
String keyword = request.getParameter("keyword");
String keyword1 = "";
if (!"".equals(keyword) && keyword != null) {
keyword1 = CommonUtils.specialStr(request.getParameter("keyword"));// 排除%等通配符
}最后将keyword1作为搜索内容带到数据库中查询就行了。
2、不连续关键字查询
当在搜索框中输入不连续的关键字时,也能从数据库中搜索的到该内容,就比如:我想搜索公司名称为阿里巴巴的数据信息时,我输入阿巴也能搜索的到阿里巴巴,这该怎么处理呢?其实很简单,也是写一个工具类,将搜索框中的字符串每两个字符之间都加上一个‘%’就ok了,具体代码如下:
public static String specialStrKeyword(String str){
if(str==null||str==""){
StringBuffer stringBuffer = new StringBuffer(str);
int length=str.length();
for (int i = 0; i & i++) {
char chari=stringBuffer.charAt(i);
if(chari=='%'||chari=='_'||chari=='\\'){
stringBuffer.insert(i, "\\");
if(chari=='%'||chari=='_'||chari=='\\'){
stringBuffer.insert(i, "%\\");
length+=2;
stringBuffer.insert(i, "%");
return stringBuffer.toString();
同样在controller层导入该工具类,使用specialStrKeyword方法就ok了,代码如下:
String keyword = request.getParameter("keyword");
String keyword1 = '';
if (!"".equals(keyword) && keyword != null) {
keyword1 = CommonUtils.specialStr(request.getParameter("keyword"));// 排除%等通配符
keyword1 = CommonUtils.specialStrKeyword(keyword1);
最后将keyword1作为搜索内容带到数据库中查询就行了。多个关键字的模糊查询
[问题点数:50分,结帖人askyouque]
本版专家分:10
结帖率 92.31%
CSDN今日推荐
本版专家分:6463
本版专家分:22
本版专家分:6463
本版专家分:2637
本版专家分:1453
本版专家分:10
本版专家分:2637
本版专家分:10
本版专家分:24787
本版专家分:329
本版专家分:10
本版专家分:10
本版专家分:8926
本版专家分:10
本版专家分:10
本版专家分:13927
本版专家分:1867
本版专家分:3450
本版专家分:89
本版专家分:10
本版专家分:10
本版专家分:8926
本版专家分:3450
本版专家分:658
本版专家分:10
匿名用户不能发表回复!|
其他相关推荐SQL语句integer类型字段模糊匹配_百度知道
SQL语句integer类型字段模糊匹配
如何找出col字段中的最后一位为1的所有记录?select*fromtabwherecollike'%1'字段col为integer类型,不能使用like匹配col值类似于如下值:只找出11、121即可DB2的数据库,像...
如何找出col字段中的最后一位为1的所有记录?select * from tab where col like '%1'字段col为integer类型,不能使用like匹配col值类似于如下值:1011121115只找出11、121即可DB2的数据库,像convert, cast都不行的,zaoyaxu的取余的思路不错,但如果最后一位是2,3……或者取最后两位、三位的话就有点麻烦了
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
zaoyaxu知道合伙人
采纳数:703
获赞数:1140
oracle、db2:select&*&from&tab&where&mod(col,10)=1sqlserver、mysqlselect&*&from&tab&where&col%10=1
chen_hongyang知道合伙人
来自电脑网络类芝麻团
chen_hongyang
采纳数:1405
获赞数:3839
参与团队:
转换成字符类型在查找select * from tab where convert(col,varchar) like '%1'
这个在DB2下执行也不行的
blademaster717知道合伙人
blademaster717
采纳数:645
获赞数:785
select * from tab where cast(col AS varchar(10)) like '%1'oracle中可以用select * from tab where to_char(col) like '%1'
猪熊打架知道合伙人
采纳数:80
获赞数:129
将int转换成nvarchar类型,在模糊查询
其他1条回答
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。其他回答(3)
/// &param name="safeSql"&存储过程名&/param&&/// &param name="values"&存储过程参数值&/param&
你现在只是写了一个存储过程名称,没有传值过去,所以肯定就找不到这个参数值了
db.GetScalar("mohuselect");
db.GetScalar("mohuselect",new SqlParameter[]{param});
传参有误,另外,GetScalar内部传过来的参数最好检测下。
收获园豆:20
GetScalar(string safeSql, params SqlParameter[] values)& &你只传了第一个参数,第二个没传过去。另外记得接收返回值。
清除回答草稿
&&&您需要以后才能回答,未注册用户请先。}

我要回帖

更多关于 设j和k都是int类型 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信