Mysql
 sql >> Base de données >  >> RDS >> Mysql

MYSQL :sélectionnez une partie du texte et coupez-la en fonction de l'emplacement du point

Peut-être que quelque chose comme ça pourrait fonctionner :

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

Vous pouvez le voir en action ici :http://sqlfiddle.com/#!2/ac4d3 /2 (J'utilise des chaînes de longueur 10 pour des raisons évidentes;) )