Có thể một cái gì đó như thế này có thể hoạt động:
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
Bạn có thể thấy nó hoạt động tại đây: http://sqlfiddle.com/#!2/ac4d3 / 2 (Tôi sử dụng chuỗi có độ dài 10 vì lý do rõ ràng;))