如何截取数据库中字符串的长度

super_loverax 2012-03-07 10:29:52
是这样的,比如 我数据库中有这么几个字段,id(varchar),content(varchar),审核(bit),我想把数据库中content字段的内容按照指定的长度截取出来,超过指定长度用...表示,然后显示在前端。那么sql语句是怎么写的呢。
String sql="select id,Len(content)>16?Substring(content,0,16)+'...':content from tb ";
上面这样写 对吗?好像有错误啊
...全文
472 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyp907093825 2012-03-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 chinajbq 的回复:]

建议全部取出后再处理,要求不严的话用JTSL标签截取处理,要求比较严的话可以直接写个java类,使用的时候直接调用,传递截取字节长度和补足的...就行了
可以参考下面的类
public static String getStringTrim(String str, int strLength) {
String trimStr = new String();
str=HtmlUtil.g……
[/Quote]
很好,不过我也想知道MySQL如果截取字符串!谁能帮我们解答吗?
ylovep 2012-03-08
  • 打赏
  • 举报
回复
substring(字段, 0, 10) as 别名,
super_loverax 2012-03-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ilovefzq 的回复:]

substring(s, position, length) - 传回字符串里的字符串,s 是本来的字符串,position 是开始的位置,length 是传回的字数
[/Quote]
substring(s, position, length)这个方法是有,但是s不能是数据库中的字段啊,我想是截取字段的长度,这里好像用不了。单独写一个处理类还是蛮不错的。
super_loverax 2012-03-08
  • 打赏
  • 举报
回复
谢谢楼上的各位亲们。我知道了。
  • 打赏
  • 举报
回复
个人认为没有特殊要求的话 还是拿出来在程序中进行处理
Super_Ninja 2012-03-08
  • 打赏
  • 举报
回复
建议写一个通用类来处理字符串,然后再封装在list里面。
如:

public static String getStringtrim(String str, int strlen) {
if (str != null && str.length() > strlen) {
return str.substring(0, strlen) + "...";
} else {
return str;
}
}
京郊-金手指 2012-03-08
  • 打赏
  • 举报
回复
在sql里是不可以用?:运算滴
ilovefzq 2012-03-08
  • 打赏
  • 举报
回复
substring(s, position, length) - 传回字符串里的字符串,s 是本来的字符串,position 是开始的位置,length 是传回的字数

epknx520 2012-03-08
  • 打赏
  • 举报
回复
顶起 期待答案~~
chinajbq 2012-03-07
  • 打赏
  • 举报
回复
建议全部取出后再处理,要求不严的话用JTSL标签截取处理,要求比较严的话可以直接写个java类,使用的时候直接调用,传递截取字节长度和补足的...就行了
可以参考下面的类
public static String getStringTrim(String str, int strLength) {
String trimStr = new String();
str=HtmlUtil.getHtmlContent(str);
if(str!=null&&str.length()>strLength){
trimStr = str.substring(0, strLength) + "...";
return trimStr;
}else{
return str;
}
}
昨日凡阳 2012-03-07
  • 打赏
  • 举报
回复
不是oracle的话,你可以这样,也建议这样。

sql不用做任何东西,查询出的结果结在java中做处理,在java中截取再封装一次就ok。
super_loverax 2012-03-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jisg_57 的回复:]

SQL code

String sql="select id,(case when length(content)>16 then substr(content,1,16)||'...'
else content end) content from tb ";
[/Quote]
楼上的不对,我用的是Sqlserver数据库,里面的内置函数是Len和Substring,但是即使改成这样,也是不行的,貌似Substring函数要求的第一个是表达式,用数据库的字段好像不对啊!即Substring(content,0,16)会提示字段content无效
jisg_57 2012-03-07
  • 打赏
  • 举报
回复

String sql="select id,(case when length(content)>16 then substr(content,1,16)||'...'
else content end) content from tb ";

昨日凡阳 2012-03-07
  • 打赏
  • 举报
回复
case when或者decode函数

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧