Mysql,指定长度的Concat

时间:2013-05-15 12:08:14

标签: mysql

我试图在mysql函数中找到一种方法,执行以下操作:

'ssssssttttttttrrrriiiinnnngggg' // I have this string

我想只取10个字母然后连接'...'(3个点),但我只想连接10个以上字母的字符串,例如:

'123456string' // Will result: '123456stri...'
'strin6' // Will result: 'strin6'
'str123456ing' // Will result: 'str123456i...'
'asd23456' // Will result: 'asd23456'

我正在尝试substr,lpad和concat组合,如果有人得到了正确的功能组合,我将非常感谢,谢谢大家,祝你有愉快的一天。

3 个答案:

答案 0 :(得分:8)

  select case when length(mystring) <= 10 then 
      mystring 
  else 
      concat(left(mystring, 7), '...') 
  end as mycol
  ...

答案 1 :(得分:2)

使用额外的IF首先检查值的长度:

SELECT IF(LENGTH(str)&gt; 10,CONCAT(SUBSTR(str,1,10),“......”),str)AS ...

答案 2 :(得分:2)

选择if(length(string1)&gt; 10,concat(substr(string1,1,10),&#34; ...&#34;),string1)as mystring