Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MYSQL:selecione parte do texto e corte-o com base na localização do ponto


Talvez algo assim possa funcionar:
SELECT
    id,
    CASE
        WHEN len <= 500 THEN content
        ELSE CASE
            WHEN idx > 0 THEN SUBSTRING(content, 1, idx)
            ELSE ''
        END
    END AS content
FROM (
  SELECT 
    id,
    content,
    LOCATE('.', content, 500) AS idx,
    LENGTH(content) AS len
  FROM data
) AS data

Você pode vê-lo em ação aqui:http://sqlfiddle.com/#!2/ac4d3 /2 (Eu uso strings com comprimento 10 por razões óbvias;) )