关于Mysql拼接mysql字符串拼接的问题...

使用hibernate操作Mysql数据库的HQL中的字符串拼接问题 - ITeye问答
表A中有个字段url里存的是类似http://www.baidu.com的只带域名的值。
用户输入一串互联网url地址(可能带目录和参数)后,需要从表A中去模糊查询匹配记录,即使用表A字段url+'%'来模糊匹配用户输入的customevalue地址。
在hibernate使用hql构造查询时,使用...where customevalue like url+'%'... 的方式报错,使用...where customevalue like concat(url,'%')... 最后输出的sql语句变为...where customevalue like (url||'%')
到底要怎么样才能实现这种字符串拼接?不明白为什么hql中的concat函数最后输出到sql语句里就变成了||
...where customevalue like '%"+url+"%'
不可以么.?
你的url是怎么作为参数传进去的?
例如:&& 如果是用& ? 方式,
试下& url+"%" 后,再注入进去。
已解决问题
未解决问题Mysql 如何实现合并多行字符串_百度知道
Mysql 如何实现合并多行字符串
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
风流小子爱美人
来自电脑网络类芝麻团
风流小子爱美人
采纳数:13919
获赞数:48119
擅长:暂未定制
参与团队:
mysql如何实现多行查询结果合并成一行,mysql如何实现多行查询结果合并成一行网站简介信息利用函数:group_concat(),实现一个ID对应多个名称时,原本为多行数据,把名称合并成一行。 其完整语法: GROUP_CONCAT(expr) 该函数返回带有来自一个组的连接的非NULL值的字符串结果。其完整的语法如下所示: GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val]) mysql& SELECT student_name, -& GROUP_CONCAT(test_score) -& FROM student -& GROUP BY student_ Or: mysql& SELECT student_name, -& GROUP_CONCAT(DISTINCT test_score -& ORDER BY test_score DESC SEPARATOR ' ') -& FROM student -& GROUP BY student_ 在MySQL中,你可以获取表达式组合的连接值。你可以使用DISTINCT删去重复值。假若你希望多结果值进行排序,则应该使用 ORDER BY子句。若要按相反顺序排列,将 DESC (递减) 关键词添加到你要用ORDER BY 子句进行排序的列名称中。默认顺序为升序;可使用ASC将其明确指定。 SEPARATOR 后面跟随应该被插入结果的值中间的字符串值。默认为逗号 (‘,')。通过指定SEPARATOR '' ,你可以删除所有分隔符。 使用group_concat_max_len系统变量,你可以设置允许的最大长度。 程序中进行这项操作的语法如下,其中 val 是一个无符号整数: SET [SESSION | GLOBAL] group_concat_max_len =
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。博客分类:
MySQL中concat函数使用方法:CONCAT(str1,str2,…)
返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。
注意:如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型 cast, 例如:SELECT CONCAT(CAST(int_col AS CHAR), char_col)
MySQL的concat函数可以连接一个或者多个字符串,如mysql& select concat('10');+--------------+| concat('10') |+--------------+| 10
|+--------------+1 row in set (0.00 sec)
mysql& select concat('11','22','33');+------------------------+| concat('11','22','33') |+------------------------+| 112233 |+------------------------+1 row in set (0.00 sec)
MySQL的concat函数在连接字符串的时候,只要其中一个是NULL,那么将返回NULLmysql& select concat('11','22',null);+------------------------+| concat('11','22',null) |+------------------------+| NULL
|+------------------------+1 row in set (0.00 sec)
MySQL中concat_ws函数使用方法: CONCAT_WS(separator,str1,str2,...)
CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。注意:如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。
如连接后以逗号分隔 mysql& select concat_ws(',','11','22','33');
+-------------------------------+| concat_ws(',','11','22','33') |+-------------------------------+| 11,22,33 |+-------------------------------+1 row in set (0.00 sec)
和MySQL中concat函数不同的是, concat_ws函数在执行的时候,不会因为NULL值而返回NULL mysql& select concat_ws(',','11','22',NULL);+-------------------------------+| concat_ws(',','11','22',NULL) |+-------------------------------+| 11,22 |+-------------------------------+1 row in set (0.00 sec)
MySQL中group_concat函数完整的语法如下:group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
mysql& select *+------+------+| id| name |+------+------+|1 | 10||1 | 20||1 | 20||2 | 20||3 | 200
|+------+------+6 rows in set (0.00 sec)
以id分组,把name字段的值打印在一行,逗号分隔(默认)
mysql& select id,group_concat(name)+------+--------------------+| id| group_concat(name) |+------+--------------------+|1 | 10,20,20||2 | 20 ||3 | 200,500|+------+--------------------+3 rows in set (0.00 sec)
以id分组,把name字段的值打印在一行,分号分隔
mysql& select id,group_concat(name separator ';')+------+----------------------------------+| id| group_concat(name separator ';') |+------+----------------------------------+|1 | 10;20;20 ||2 | 20||3 | 200;500
|+------+----------------------------------+3 rows in set (0.00 sec)
以id分组,把去冗余的name字段的值打印在一行,
mysql& select id,group_concat(distinct name)+------+-----------------------------+| id| group_concat(distinct name) |+------+-----------------------------+|1 | 10,20||2 | 20
||3 | 200,500 |+------+-----------------------------+3 rows in set (0.00 sec)
以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序
mysql& select id,group_concat(name order by name desc)+------+---------------------------------------+| id| group_concat(name order by name desc) |+------+---------------------------------------+|1 | 20,20,10
||2 | 20||3 | 500,200|+------+---------------------------------------+3 rows in set (0.00 sec)
repeat()函数
用来复制字符串,如下'ab'表示要复制的字符串,2表示复制的份数
mysql& select repeat('ab',2);
+----------------+| repeat('ab',2) |+----------------+| abab
|+----------------+
1 row in set (0.00 sec)
又如mysql& select repeat('a',2);
+---------------+| repeat('a',2) |+---------------+| aa
|+---------------+1 row in set (0.00 sec)
浏览 256508
浏览: 370557 次
来自: 上海
&script&alert(d);&/scr ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'博客分类:
mysql的字符串拼接
concat(str1,str2,str3)
concat_ws(separator,str1,str2,str3)
实现中只需要注意null的问题,说明如下:
concat()中只要有一个字符串为null那么返回值为null
concat_ws():
1.separator为null时返回为null
2.其他字符串为null的时候直接跳过
select concat(id,xf,null) from data limit 1;
+--------------------+| concat(id,xf,null) |+--------------------+| NULL |
select concat_ws('=',id,xf,null) from data limit 1;
+------------------------------------+| concat_ws('=',id,xf,null) |+------------------------------------+| 070e997f147ce9f355dc0=2 |
select concat_ws(null,id,xf) from data limit 1;
+-----------------------+| concat_ws(null,id,xf) |+-----------------------+| NULL |
可以使用replace自定义函数,开发一个截取字符串的工具类。问题是需求不是截取啊
浏览: 667838 次
来自: 北京
嗯,写的很好
你告诉我你贴的这代码有什么用??你给的下载包又有什么 ...
如果可以的话,求一份源码,谢谢
邮箱:@q ...
不错!可以使用,已验证。
这和我去官网看有啥区别?
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'Mysql 将表中的字段拼接成字符串再写入该表的某字段
一、需求有一张表 表test,我需要将 表test 里面的一些字段查询出来,并且拼接成某种形式的字符串,然后将这个字符串再写入 表test 的某个字段中。举例,一张表如下:最终我需要将str前面的字段 以某种形式 拼接后,再写入 str中,如下图:二、实现字符串的拼接使用
concat()这个函数的使用方式随便查查就很多, concat(field_1,&-&,field_2,&-&,field_3)1. 构建临时表将 表 test 中需要的字段以及拼接后的字段全部查询出来,并且构建临时的一张表(或者视图):注意:
需要有一个主键或者是唯一的键create table tmp_test select uid,concat (uid,'-',name,'-',address,'-',age,'-',sex,'.',sex)执行完之后会形成一个临时的表 tmp_test2. 联合两个表,进行字段的更新即可。uid是唯一的,因此可以用作where查询条件update test set str = (select str from tmp_test where tmp_test.uid = test.uid); 3. drop掉临时表drop table tmp_4. 最终结果三、注意构建临时表的原因是: Mysql是不允许 先select出同一表中的某些值,再update这个表(在同一语句中)
文章版权:
本文链接:
转载请注明文章原始出处 !
扫描二维码,在手机阅读!
添加新评论

我要回帖

更多关于 excel字符串拼接 的文章

 

随机推荐