Bon, j'arrive pas à me connecter, désolé : ça attendra ce soir :'(
Sources des LSV avec un S ou non ?
Mans en Java je fais ça :
String details; SourcesList sources;
public Details(String details_avec_source) {
String[] tab = details_source.split("<ins>Source");
this.details=tab[0];
if(tab.length > 1) {
if(tab[1].length() > 10) // plus de caractères dans la source
this.sources= new SourcesList(tab[1].replaceAll("</ins>", ""));
else // Ne dois jamais y entrer, sinon corriger le LSV
this.sources = new SourcesList(0);
} // Pas de sources dans le LSV
else this.sources = new SourcesList(0);
}
Tu veux passer par chez moi ?
Non, ça serait trop risqué… mais c'est gentil de proposer.
Tu peux compter sur une donnée “sources” dès ce soir…
... pour l'alimentation, je dis pas ^^
(si on ne veut pas risquer de planter au premier “source” au milieu d’un LSV, i.e : la Seine prend sa [source]...
Pourquoi ne pas chercher Sources avec les + devant et derrière vu qu'on fout tout bien propre en textile dans les LSV ?
Si quelqu'un sait faire une requête postgreSQL :
UPDATE lsv_lsvtrans SET
source = "(partie après +Source(s):+),
details = "(partie avant +Source(s):+)
WHERE ...
Je suis preneur.
MAIS
Si la requête plante et que tous les LSV sont kapput après la requête, il sera cloué sur la bite de Junk.
Beri c'est ce que je fais pour ma part dans le code Java avec <ins>Source
MAIS
Si la requête plante et que tous les LSV sont kapput après la requête, il sera cloué sur la bite de Junk.
Euh… Tu voudrais pas plutôt la tenter sur une base de test avant de le faire en prod ?
Si… mais c'est pas ça le soucis : en prod, il y a toujours une merde non prévue :-)
Si la requête plante et que tous les LSV sont kapput après la requête, il sera cloué sur la bite de Junk.
Tu t'étonneras pas d'un manque de volontaires.
Et +1 avec Mako.
On va le dire autrement :
1. vous faites la requête (pour moi, c'est mort : ça existe pas les je n'ai jamais vu de regexp en MySQL).
2. je m'occupe de la recette et je vous prouverai que ça sert à rien et qu'il valait mieux le faire à la main direct.
Tu ne peux pas le faire plus subtilement ? Du genre :
- Récupérer les détails ;
– Séparer détails (old) et sources ;
– insérer fichier des sources dans la table source, et gros update pour la table des détails ;
?
ça suppose d'extraire tout, de travailler le dump puis de ré-insérer… that's a bit risky ^^
(encodage des caractères…)
J'ai la requête, par contre c'est du mySql :/
J’ai la requête, par contre c’est du mySql :/
Le mans, il parle un coup de Postgre, un coup de My, du coup je sais plus quel est le bon!
1. MySQL is not pgsql (mais ça change rien)
2. dans ton exemple :
Warning
The REGEXP and RLIKE operators work in byte-wise fashion, so they are not multi-byte safe and may produce unexpected results with multi-byte character sets. In addition, these operators compare characters by their byte values and accented characters may not compare as equal even if a given collation treats them as equal.
3. dans ton exemple toujours, on dirait que ça ne marche que dans les “WHERE”... ce qui me permettra de facilement identifier les LSV mais pas de manipuler ses contenus…
OUI, je peux aussi pondre un script à deux balles en python qui le fait…
... NON, j'ai pas envie (parce que l'erreur coûte cher si elle passe inaperçu)
1. MySQL is not pgsql (mais ça change rien)
Ehoh, c'est toi qui me dit “Jamais vu de regexp en mySQL” :D
Pour le reste, j'ai envie de dire que si c'est pas aussi trivial qu'un coup de sed ou awk, c'est effectivement risqué et que je me fouetterais toute la soirée avec des fils barbelés enduits de Tabasco pour avoir suggéré une automatisation qui n'a pas pu avoir lieu.
Le truc, c'est que si une requête simple faisait ça, on pourrait le faire !
Vous avez remarqué le bug des commentaires qui disparaissaient ? (complètement vides)
ce ticket est mignon aussi
Si on fait une requête et que 20 LSV sont croqués tout crus… on le verra dans 2 mois et on aura juste perdu 20 LSV…
... connement.
Après, on a le droit de proposer des trucs ! Mais on a aussi le droit de vraiment de flageller aux barbelés avec du tabsco sel de guérande.
Vous avez remarqué le bug des commentaires qui disparaissaient ? (complètement vides)
Non, mais je n'écris pas de commentaire vide. Vides de sens parfois.
Mais je me suis bien vautré sur le rapport bénéfices/risques sur ce coup là.
CREATE FUNCTION stringSplit(x text, delim text, pos int) returns text
return replace(substring(substring_index(x, delim, pos), length(substring_index(x, delim, pos - 1)) + 1), delim, '');
UPDATE lsv_lsvtrans
SET sources =
(
SELECT stringSplit(lsv_lsvtrans.details, '+Source :+', 2) AS sources_find
), details =
(
SELECT stringSplit(lsv_lsvtrans.details, '+Source :+', 1) AS details_find
)
WHERE
(
SELECT LENGTH( stringSplit(lsv_lsvtrans.details, '+Source :+', 2))
)>0
Faire deux fois, avec Source : et Sources : et ensuite vérifier que les sources sont complétées.
Enjoy ;)
Testé en local, si pas de sources, ne fait rien, le mot clef n'a pas été trouvé, il ne fait rien.