sql >> Databasteknik >  >> RDS >> Mysql

MYSQL:välj en del av texten och klipp ut den baserat på punktens plats

Kanske något sånt här kan fungera :

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

Du kan se det i aktion här :http://sqlfiddle.com/#!2/ac4d3 /2 (Jag använder strängar med längd 10 av förklarliga skäl;) )




  1. Hur många poster kan jag lagra i 5 MB PostgreSQL på Heroku?

  2. Ändra SQL-fråga från ett villkor till flera

  3. Hur man får första raden per grupp i PostgreSQL

  4. Hur man använder rollerna som har ändrats i MySQL 8.0