Use this to create a slug from a string field.
DELIMITER // CREATE FUNCTION generate_slug(input_text VARCHAR(255)) RETURNS VARCHAR(255) BEGIN DECLARE slug VARCHAR(255); SET slug = LOWER(input_text); -- Replace spaces with hyphens SET slug = REPLACE(slug, ' ', '-'); -- Remove special characters SET slug = REGEXP_REPLACE(slug, '[^a-z0-9-]', ''); RETURN slug; END // DELIMITER ;
Then you can do the following
select h.title, generate_slug(h.title) from hancocks as h