MySQL truncate text with ellipsis

前端 未结 6 472
小鲜肉
小鲜肉 2021-01-04 01:14

Suppose I have a MySQL table of one column: \"Message\". It is of type TEXT. I now want to query all rows, but the text can be large (not extremely large but large) and I on

6条回答
  •  刺人心
    刺人心 (楼主)
    2021-01-04 01:39

    You can declare a new ELLIPSIS function in order to make your query readable:

    DELIMITER //
    
    CREATE FUNCTION ELLIPSIS ( str TEXT, max_length INT )
    RETURNS TEXT
    
    BEGIN
       DECLARE str_out TEXT;
    
       IF LENGTH(str) <= max_length THEN
          SET str_out = str;
          
       ELSE
          SET str_out = CONCAT(SUBSTR(str, 1, max_length), '...');
    
       END IF;
       
       RETURN str_out;
    
    END; //
    
    DELIMITER ;
    

    Then you simply do:

    SELECT ELLIPSIS(Message, 10);
    

提交回复
热议问题