J'ai une colonne enregistrée comme LONGTEXT
sur mysql. Ce texte enregistre du texte enrichi. Je suis en train de lire tout le texte puis de le corriger en utilisant javascript pour obtenir les premiers caractères 100
de manière à ne pas diviser le mot en son milieu.Comment sélectionner une partie d'un texte sur mysql?
Pourtant, cette façon ne semble pas la meilleure façon de le faire. Je veux sélectionner un résumé directement en utilisant la requête, mais je veux aussi faire attention à ne pas inclure les caractères qui sont des balises html.
La fonction ci-dessous semble fonctionner correctement pour enlever le code HTML.
SET GLOBAL log_bin_trust_function_creators=1;
DROP FUNCTION IF EXISTS fnStripTags;
DELIMITER |
CREATE FUNCTION fnStripTags(Dirty varchar(4000))
RETURNS varchar(4000)
DETERMINISTIC
BEGIN
DECLARE iStart, iEnd, iLength int;
WHILE Locate('<', Dirty) > 0 And Locate('>', Dirty, Locate('<', Dirty)) > 0 DO
BEGIN
SET iStart = Locate('<', Dirty), iEnd = Locate('>', Dirty, Locate('<', Dirty));
SET iLength = (iEnd - iStart) + 1;
IF iLength > 0 THEN
BEGIN
SET Dirty = Insert(Dirty, iStart, iLength, '');
END;
END IF;
END;
END WHILE;
RETURN Dirty;
END;
|
DELIMITER ;
Etes-vous sûr de cette fonction? Je l'ai essayé et cela a pris du temps et il n'a pas donné de résultat jusqu'à maintenant, comme s'il entrait en boucle infinie. – Luci
je prends cette fonction des commentaires du site mysql je lie à cette page: http://dev.mysql.com/doc/refman/5.0/fr/string-functions.html, il exécute cette fonction et obtenir des résultats, quelle est la taille de votre domaine? –
vous pouvez regarder une autre fonction de tags de bande dans le web, j'ai trouvé un autre dans http://www.artfulsoftware.com/infotree/queries.php?&bw=1280 ou dans http://www.discussweb.com/database-support/ 4575-how-strip-html-tags-mysql.html –