Cela semble être un peu en dehors de ma ligue et de ma connaissance de MySQL. Donc, si quelqu'un peut aider, ce serait très apprécié.
Je voudrais faire ce qui suit:
mercedes
mercedes
en tant que balise.Maintenant ... Il y a trois tables avec les colonnes pertinentes listées:
id
, title
id
, name
, published
(la valeur 1 est attribuée si la balise est publiée)
id
, tagID
, itemID
Donc, la requête doit sélectionner tous les éléments de la table k2_items
Qui ont pour titre keyword
, vérifiez si keyword
est déjà défini comme tag
dans k2_tags
, sinon créer une nouvelle balise. Après cela, une nouvelle entrée k2_tags_xref
Doit être générée pour connecter la balise keyword
à l'article K2.
Je n'avais toujours pas de cours de base de données sur mon université, je suis donc un peu en dehors de ma ligue avec celle-ci, et c'était supposé être juste une simple retouche pour le site que je développe.
Toute aide à cet égard serait très appréciée, et je suis sûr que cela aidera la communauté plus tard.
Merci!
Il y a quelques requêtes que vous devez exécuter. S'il vous plaît utiliser ces requêtes d'abord sur un environnement de test. Il y a une idée:
/* Query 1: Select the id of the tag */
SELECT id FROM `#__k2_tags` WHERE `name` = 'mercedes' LIMIT 1;
/* Query 2: If previous query returned null, create a new tag */
INSERT INTO `#__k2_tags`
SET `name` = 'mercedes',
`published` = 1;
/* Query 3: Use this to get the last id or use id from Query 1 */
SELECT LAST_INSERT_ID();
/* Query 4: Insert tags for each article that contains in the title the Word mercedes */
INSERT INTO `#__k2_tags_xref` (`tagID`,`itemID`)
(
SELECT DISTINCT 'YOUR_TAG_ID', i.id
FROM `#__k2_items` AS i
WHERE LOCATE('mercedes', title) > 0
)