Zum Hauptinhalt springen Skip to page footer

Datenbank: slugify

Wir ein Slug-Field nachträglich angelegt, muss dieses initial befüllt werden, damit die sprechenden URLs generiert werden können.

Dazu haben sich folgende DB-Anweisungen als hilfreich erwiesen:

UPDATE `mytable` SET slug=title WHERE slug='';
UPDATE `mytable` SET slug=LOWER(slug);
UPDATE `mytable` SET slug=replace(slug, ' ', '-');
UPDATE `mytable` SET slug=replace(slug, '\n', '-');
UPDATE `mytable` SET slug=replace(slug, '\r', '-');
UPDATE `mytable` SET slug=replace(slug, '.', '');
UPDATE `mytable` SET slug=replace(slug, ',', '');
UPDATE `mytable` SET slug=replace(slug, '/', '');
UPDATE `mytable` SET slug=replace(slug, '&', '');
UPDATE `mytable` SET slug=replace(slug, 'ä', 'ae');
UPDATE `mytable` SET slug=replace(slug, 'ö', 'oe');
UPDATE `mytable` SET slug=replace(slug, 'ü', 'ue');
UPDATE `mytable` SET slug=replace(slug, 'ß', 'ss');

# evtl. mehrfach ausführen:
UPDATE `mytable` SET slug=replace(slug, '--', '-');

Dadurch ist allerdings noch nicht gewährleistet, dass die Slug-Einträge auch eindeutig sind.

Duplikate können folgendermaßen gefunden werden:

SELECT pid, uid, hidden, deleted, title, slug
FROM mytable
WHERE pid IN(sysfolder-id) and slug > '' and slug IN (
  SELECT slug
  FROM mytable
  GROUP BY slug
  HAVING COUNT(*) > 1
)
ORDER by slug DESC, uid DESC;