2

我试图在 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 组合,如果有人得到正确的功能组合,我将非常感激,谢谢大家,祝你有美好的一天。

4

3 回答 3

8
  select case when length(mystring) <= 10 then 
      mystring 
  else 
      concat(left(mystring, 7), '...') 
  end as mycol
  ...
于 2013-05-15T12:11:09.527 回答
2

使用附加的 IF 首先检查值的长度:

选择 IF(LENGTH(str) > 10, CONCAT(SUBSTR(str, 1, 10), "..."), str) AS ...

于 2013-05-15T12:13:37.113 回答
2

选择 if(length(string1)>10,concat(substr(string1,1,10),"..."),string1) 作为 mystring

于 2013-05-15T12:16:43.907 回答