sql >> Database >  >> RDS >> Mysql

MYSQL:selecteer een deel van de tekst en knip het uit op basis van puntlocatie

Misschien zou zoiets kunnen werken:

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

Je kunt het hier in actie zien:http://sqlfiddle.com/#!2/ac4d3 /2 (Ik gebruik om voor de hand liggende redenen strings met een lengte van 10;) )




  1. ORDER BY ... USING-clausule in PostgreSQL

  2. MySQL met een andere index, afhankelijk van de limietwaarde met ORDER BY-query

  3. Laravel 5 welsprekend waarIn

  4. SQL INSERT INTO-instructie