if(StringUtils.isNotBlank(queryBean.getConditions())){
hqlBuilder.addWhereClause(" concat(this.user.name,this.ip,this.mac,this.name,this.organization.name) like ? ", "%"+queryBean.getConditions()+"%");
}

一、LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

  语法:SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;

  通过使用 NOT 关键字,您可以选取不匹配模式的记录。

SELECT * FROM Websites
WHERE name LIKE 'G%';
//选取 name 以字母 "G" 开始的所有客户
SELECT * FROM Websites
WHERE name LIKE '%k';
//选取 name 以字母 "k" 结尾的所有客户
SELECT * FROM Websites
WHERE name LIKE '%oo%';
//选取 name 包含模式 "oo" 的所有客户
SELECT * FROM Websites
WHERE name NOT LIKE '%oo%';
//选取 name 不包含模式 "oo" 的所有客户

二、CONCAT()函数用于将多个字符串连接成一个字符串,是最重要的mysql函数之一,下面就将为您详细介绍mysql CONCAT()函数:

1、mysql CONCAT(str1,str2,…)

  返回结果为连接参数产生的字符串

  如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多个参数。(所以上面写法是有问题的,如果库里某个项为null,那么模糊查询时,concat的结果都将是null,需要用到下面介绍的concat_ws()比较好

  如果所有参数均为非二进制字符串,则结果为非二进制字符串。

  如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;

  若要避免这种情况,可使用显式类型 cast,例如: SELECT CONCAT(CAST(int_col AS CHAR), char_col)

mysql> SELECT CONCAT(’My’, ‘S’, ‘QL’);
// ‘MySQL’ mysql> SELECT CONCAT(’My’, NULL, ‘QL’);
// NULL mysql> SELECT CONCAT(14.3);
// ‘14.3′

2、mysql CONCAT_WS(separator,str1,str2,…)

  CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。

  第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。

  如果分隔符为 NULL,则结果为 NULL。

  函数会忽略任何分隔符参数后的 NULL 值。这是和MySQL中concat函数不同的地方、concat_ws函数在执行的时候,不会因为NULL值而返回NULL。(这点很重要

mysql> SELECT CONCAT_WS(’,',’First name’,'Second name’,'Last Name’);
// ‘First name,Second name,Last Name’ mysql> SELECT CONCAT_WS(’,',’First name’,NULL,’Last Name’);
// ‘First name,Last Name’
//mysql CONCAT_WS()不会忽略任何空字符串。 (然而会忽略所有的 NULL)。

3、group_concat函数

  完整的语法如下:group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])(分隔符默认逗号)

  基本查询:

mysql> select * from aa;
+------+------+
| id| name |
+------+------+
| | |
| | |
| | |
| | |
| | |
| | |
+------+------+
rows in set (0.00 sec)

  以id分组,把name字段的值打印在一行,逗号分隔(默认)

mysql> select id,group_concat(name) from aa group by id;
+------+--------------------+
| id| group_concat(name) |
+------+--------------------+
| | ,,|
| | |
| | ,|
+------+--------------------+
rows in set (0.00 sec)

  以id分组,把name字段的值打印在一行,分号分隔

mysql> select id,group_concat(name separator ';') from aa group by id;
+------+----------------------------------+
| id| group_concat(name separator ';') |
+------+----------------------------------+
| | ;; |
| | |
| | ; |
+------+----------------------------------+
rows in set (0.00 sec)

  以id分组,把去冗余的name字段的值打印在一行,逗号分隔

mysql> select id,group_concat(distinct name) from aa group by id;
+------+-----------------------------+
| id| group_concat(distinct name) |
+------+-----------------------------+
| | ,|
| | |
| | , |
+------+-----------------------------+
rows in set (0.00 sec)

  以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序

mysql> select id,group_concat(name order by name desc) from aa group by id;
+------+---------------------------------------+
| id| group_concat(name order by name desc) |
+------+---------------------------------------+
| | ,, |
| | |
| | ,|
+------+---------------------------------------+
rows in set (0.00 sec)

4、repeat()函数

用来复制字符串,如下'ab'表示要复制的字符串,2表示复制的份数

mysql> select repeat('ab',2);
+----------------+
| repeat('ab',) |
+----------------+
| abab |
+----------------+
row in set (0.00 sec)

模糊搜索:concat各种函数详解、like操作符、通配符的更多相关文章

  1. Netsuite Formula > Oracle函数列表速查(PL/SQL单行函数和组函数详解).txt

    PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 ...

  2. MYSQL常用内置函数详解说明

    函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...

  3. Mysql 字符函数详解

    MySql 所有字符串函数函数详解 ASCII(str) 返回str最左边第一位字符的ASCII编码,如果str为空,则返回 0 .如果str为NULL,则返回NULL -- 只返回a的ASCII编码 ...

  4. malloc 与 free函数详解<转载>

    malloc和free函数详解   本文介绍malloc和free函数的内容. 在C中,对内存的管理是相当重要.下面开始介绍这两个函数: 一.malloc()和free()的基本概念以及基本用法: 1 ...

  5. NSSearchPathForDirectoriesInDomains函数详解

    NSSearchPathForDirectoriesInDomains函数详解     #import "NSString+FilePath.h" @implementation ...

  6. JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解

    二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...

  7. Linux C popen()函数详解

    表头文件 #include<stdio.h> 定义函数 FILE * popen( const char * command,const char * type); 函数说明 popen( ...

  8. kzalloc 函数详解(转载)

    用kzalloc申请内存的时候, 效果等同于先是用 kmalloc() 申请空间 , 然后用 memset() 来初始化 ,所有申请的元素都被初始化为 0. view plain /** * kzal ...

  9. jQuery.attr() 函数详解

    一,jQuery.attr()  函数详解: http://www.365mini.com/page/jquery-attr.htm 二,jQuery函数attr()和prop()的区别: http: ...

随机推荐

  1. 微信小程序实战篇-图片的预览、二维码的识别

    开篇 今天,做的小程序项目要求,个人中心的客服图片在用户长按时可以识别其二维码,各种翻阅查找,采坑很多,浪费了很多时间,在这里记录下需要注意的点,以及对小程序官方提供的API做一个正确和清晰的认知,希 ...

  2. 【hdoj_2082】找单词

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2082 此题采用母函数的知识求解,套用母函数模板即可: http://blog.csdn.NET/ten_s ...

  3. WordPress匿名投稿插件:DX-Contribute(WP我要投稿,我要爆料)

    倡萌在<WordPress添加投稿功能(无需注册/可邮件通知站长和投稿人) >中分享过,通过修改主题文件实现游客快捷投稿的功能,但是有部分同学就是不太会动手,那么今天就分享一个WordPr ...

  4. jquery中的done和always解决ajax问题

    昨天写一个跨域请求json数据的实例.遇到传值问题,尝试了各种方式都不行,后来发现,同一个地址,同一个ip请求次数频繁传值相同的话,ajax会默认跟一个&?时间戳,这就导致我传过去的值是错误的 ...

  5. AndroidStudio运行项目出现DELETE_FAILED_INTERNAL_ERROR和INSTALL_CANCELED_BY_USER

    以上的错误为:无法将AS中的代码放到手机上 解决:File->Settings->Build,Execuion,Deployment->Instant Run然后把Enable In ...

  6. 345. Reverse Vowels of a String【Easy】【双指针-反转字符串中的元音字符】

    Write a function that takes a string as input and reverse only the vowels of a string. Example 1: In ...

  7. Windows下的cd命令

    http://blog.sina.com.cn/s/blog_5e971b850100rtta.html 首先先了解下什么是驱动器,什么是盘符. 驱动器是指通过系统格式化并带有一个驱动器号的存储区域, ...

  8. Unity游戏开发之C#快速入门

    C#是微软团队在开发.NET框架时开发的,它的构想接近于C.C++,也和JAVA十分相似,有许多强大的编程功能. 个人感受是C#吸收了众多编程语言的优点,从中可以看到C.C++.Java.Javasc ...

  9. 【tomcat】tomcat远程调试

    修改tomcat bin目录下的catalina.sh,增加下面这行: CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,address=9 ...

  10. JZYZOJ 1360 [usaco2011feb]人品问题 DP 树状数组 离散化

    http://172.20.6.3/Problem_Show.asp?id=1360   好想好写   代码 #include<iostream> #include<cstdio&g ...