模糊搜索:concat各种函数详解、like操作符、通配符
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操作符、通配符的更多相关文章
- Netsuite Formula > Oracle函数列表速查(PL/SQL单行函数和组函数详解).txt
PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序.在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 ...
- MYSQL常用内置函数详解说明
函数中可以将字段名当作变量来用,变量的值就是该列对应的所有值:在整理98在线字典数据时(http://zidian.98zw.com/),有这要一个需求,想从多音字duoyinzi字段值提取第一个拼音 ...
- Mysql 字符函数详解
MySql 所有字符串函数函数详解 ASCII(str) 返回str最左边第一位字符的ASCII编码,如果str为空,则返回 0 .如果str为NULL,则返回NULL -- 只返回a的ASCII编码 ...
- malloc 与 free函数详解<转载>
malloc和free函数详解 本文介绍malloc和free函数的内容. 在C中,对内存的管理是相当重要.下面开始介绍这两个函数: 一.malloc()和free()的基本概念以及基本用法: 1 ...
- NSSearchPathForDirectoriesInDomains函数详解
NSSearchPathForDirectoriesInDomains函数详解 #import "NSString+FilePath.h" @implementation ...
- JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解
二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...
- Linux C popen()函数详解
表头文件 #include<stdio.h> 定义函数 FILE * popen( const char * command,const char * type); 函数说明 popen( ...
- kzalloc 函数详解(转载)
用kzalloc申请内存的时候, 效果等同于先是用 kmalloc() 申请空间 , 然后用 memset() 来初始化 ,所有申请的元素都被初始化为 0. view plain /** * kzal ...
- jQuery.attr() 函数详解
一,jQuery.attr() 函数详解: http://www.365mini.com/page/jquery-attr.htm 二,jQuery函数attr()和prop()的区别: http: ...
随机推荐
- 《逐梦旅程 WINDOWS游戏编程之从零开始》笔记8——载入三维模型&Alpha混合技术&深度测试与Z缓存
第17章 三维游戏模型的载入 主要是如何从3ds max中导出.X文件,以及如何从X文件加载三维模型到DirextX游戏程序里.因为复杂的3D物体,要用代码去实现,那太反人类了,所以我们需要一些建模软 ...
- hdu 3605(二分图多重匹配)
Escape Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Subm ...
- C++编译常见错误
error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To di ...
- HDR文件格式简介及其读写函数
转自:http://blog.csdn.net/lqhbupt/article/details/7828827 1.HDR简介HDR的全称是High-DynamicRange(高动态范围).在此,我们 ...
- mysql中json数据的拼接方式
SELECT CONCAT('[', GROUP_CONCAT( CONCAT('{"id":"',STRUCTURE_ID,'"'),',', CONCAT( ...
- 运行ceph时,了解一下主要的进程。
最简单ceph.conf配置如下: [global] fsid = 798ed076--429e-9e27-0ffccd60b56e mon_initial_members = ceph-node1 ...
- spring mvc 表单提交 乱码
1.在web.xml添加过滤器: <filter> <filter-name>SpringCharacterEncoding</filter-name> <f ...
- saltstack认证报错问题
认证报错 [root@saltstack01 ~]# salt '*' test.ping saltstack01: True saltstack03: Minion did not return. ...
- SpringMVC一些功能
1.日期格式转换 当页面提交日期格式时 默认的格式为2017/10/1 如果指定日期格式为2017-10-1 //初始化绑定日期格式--不定义初始化格式时只能默认用yyyy/MM/dd格式 @Init ...
- 《深入理解Android2》读书笔记(五)
接上篇<深入理解Android2>读书笔记(四) startActivity Am void run() throws RemoteException { try { printMessa ...