MySQL에서는 내장 함수만으로 슬러그를 생성하기 어려울 수 있으므로, 이를 위한 사용자 정의 함수를 작성할 수 있습니다.
아래와 같이 별도의 함수를 프롬프트에서 선언한 후 사용할 수 있습니다.
슬러그 생성용 함수 만들기
DELIMITER //
CREATE FUNCTION generate_slug(str VARCHAR(255)) RETURNS VARCHAR(255)
DETERMINISTIC
BEGIN
DECLARE result VARCHAR(255);
-- 공백을 하이픈으로 변경
SET result = REPLACE(str, ' ', '-');
-- 모든 문자를 소문자로 변환
SET result = LOWER(result);
-- 알파벳과 숫자, 하이픈만 남기고 제거
SET result = REGEXP_REPLACE(result, '[^a-z0-9-]', '');
-- 연속된 하이픈을 하나로 축소
SET result = REGEXP_REPLACE(result, '-+', '-');
-- 앞뒤 하이픈 제거
SET result = TRIM(BOTH '-' FROM result);
RETURN result;
END //
DELIMITER ;
UPDATE your_table
SET slug = generate_slug(product_name);
댓글