Kiedy z poziomu bazy danych chcemy aby dana kolumna była odwzorowana w innej ale z zamianą polskich znaków na ich odpowiedniki bez ogonów aby wykorzystać je w url-u to przyda nam się podana funkcja.
Poniższy przykład pobiera z kolumny name wartość i wyrzucając z niej niedozwolone znaki wstawia do kolumny slug. Tak więc za pomocą 2 zapytań możemy wygenerować url-e do podanych tekstów.
UPDATE [tabela] SET
slug = REPLACE(trim(lower(name)), '', '-');
UPDATE [tabela] SET
slug = REPLACE(slug, 'ą', 'a'),
slug = REPLACE(slug, 'Ą', 'A'),
slug = REPLACE(slug, 'ć', 'c'),
slug = REPLACE(slug, 'Ć', 'C'),
slug = REPLACE(slug, 'ę', 'e'),
slug = REPLACE(slug, 'Ę', 'E'),
slug = REPLACE(slug, 'ł', 'l'),
slug = REPLACE(slug, 'Ł', 'L'),
slug = REPLACE(slug, 'ń', 'n'),
slug = REPLACE(slug, 'Ń', 'N'),
slug = REPLACE(slug, 'ó', 'o'),
slug = REPLACE(slug, 'Ó', 'O'),
slug = REPLACE(slug, 'ś', 's'),
slug = REPLACE(slug, 'Ś', 'S'),
slug = REPLACE(slug, 'ż', 'z'),
slug = REPLACE(slug, 'Ż', 'Z'),
slug = REPLACE(slug, 'ź', 'z'),
slug = REPLACE(slug, 'Ź', 'Z')
slug = REPLACE(slug, '.', ''),
slug = REPLACE(slug, ',', ''),
slug = REPLACE(slug, ';', ''),
slug = REPLACE(slug, ':', ''),
slug = REPLACE(slug, '?', ''),
slug = REPLACE(slug, '%', ''),
slug = REPLACE(slug, '&', ''),
slug = REPLACE(slug, '#', ''),
slug = REPLACE(slug, '*', ''),
slug = REPLACE(slug, '!', ''),
slug = REPLACE(slug, '_', ''),
slug = REPLACE(slug, '@', ''),
slug = REPLACE(slug, '+', ''),
slug = REPLACE(slug, '(', ''),
slug = REPLACE(slug, ')', ''),
slug = REPLACE(slug, '[', ''),
slug = REPLACE(slug, ']', ''),
slug = REPLACE(slug, '/', ''),
slug = REPLACE(slug, '-', ''),
slug = REPLACE(slug, '\'', '');
Po takiej operacji mamy wygenerowane wpisy.
Zaletą jest to że wykonujemy to z samej bazy danych bez używania innego języka co zapewnia większ wydajność.