From 7a6d7fbef7fccd4e1bfd3ac5f457a674e4f68e37 Mon Sep 17 00:00:00 2001 From: stephan Date: Wed, 29 Jul 2026 19:59:51 -0400 Subject: [PATCH] =?UTF-8?q?MSIN-4516=20=E2=80=94=20Improve=20Excel=20XML?= =?UTF-8?q?=20generation=20by=20implementing=20a=20more=20efficient=20data?= =?UTF-8?q?=20handling=20approach,=20reducing=20memory=20usage=20for=20lar?= =?UTF-8?q?ge=20files.=20Update=20version=20code=20to=204.72.911.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/MSIN-4520-diag-mojibake-eve-1290.sql | 59 ++++ sql/MSIN-4520-fix-mojibake-eve-1290.sql | 372 +++++++++++++++++++++++ 2 files changed, 431 insertions(+) create mode 100644 sql/MSIN-4520-diag-mojibake-eve-1290.sql create mode 100644 sql/MSIN-4520-fix-mojibake-eve-1290.sql diff --git a/sql/MSIN-4520-diag-mojibake-eve-1290.sql b/sql/MSIN-4520-diag-mojibake-eve-1290.sql new file mode 100644 index 0000000..2cfa5dc --- /dev/null +++ b/sql/MSIN-4520-diag-mojibake-eve-1290.sql @@ -0,0 +1,59 @@ +-- MSIN-4520 — 1/2 DIAGNOSTIC accents — eve 1290 +-- Lecture seule. Navicat PROD → Run. +-- IMPORTANT : COLLATE utf8mb4_bin (sinon à matche la lettre A → faux positifs) + +SET NAMES utf8mb4; +SET @eve := 1290; +SET @m := CONVERT(UNHEX('C383') USING utf8mb4); -- caractere à reel + +-- ===== RESUME (1 ligne) ===== +SELECT + @eve AS evenement, + ( + SELECT COUNT(*) + FROM resultats_participants + WHERE eve_id = @eve + AND par_origine = 'import_fichier' + AND ( + par_nom LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + OR par_prenom LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + OR IFNULL(par_nom_equipe, '') LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + ) + ) AS nb_participants_a_corriger, + ( + SELECT COUNT(*) + FROM resultats_epreuves_commandees e + INNER JOIN resultats_participants p + ON p.eve_id = e.eve_id + AND (p.pec_id = e.pec_id_original OR p.pec_id = e.pec_id) + WHERE e.eve_id = @eve + AND p.par_origine = 'import_fichier' + AND IFNULL(e.pec_nom_equipe, '') LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + ) AS nb_equipes_pec_a_corriger, + ( + SELECT COUNT(*) + FROM resultats_questions q + INNER JOIN resultats_participants p + ON p.eve_id = @eve + AND p.par_origine = 'import_fichier' + AND (q.par_id = p.par_id OR q.par_id = p.par_id_original) + WHERE IFNULL(q.que_choix_fr, '') LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + OR IFNULL(q.que_choix_en, '') LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + ) AS nb_reponses_questions_a_corriger; + +-- ===== EXEMPLES — tu dois voir AUBÉ / Mylène (pas ALLAN) ===== +SELECT + par_id, + par_nom AS nom_actuel, + par_prenom AS prenom_actuel, + par_nom_equipe AS equipe_actuelle +FROM resultats_participants +WHERE eve_id = @eve + AND par_origine = 'import_fichier' + AND ( + par_nom LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + OR par_prenom LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + OR IFNULL(par_nom_equipe, '') LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + ) +ORDER BY par_nom, par_prenom +LIMIT 30; diff --git a/sql/MSIN-4520-fix-mojibake-eve-1290.sql b/sql/MSIN-4520-fix-mojibake-eve-1290.sql new file mode 100644 index 0000000..0786f78 --- /dev/null +++ b/sql/MSIN-4520-fix-mojibake-eve-1290.sql @@ -0,0 +1,372 @@ +-- MSIN-4520 — CORRECTIF accents mojibake — eve 1290 (PROD) +-- SQL simple : pas de FUNCTION / DELIMITER. Navicat → Run. +-- Prefere : faire un backup rapide des 3 tables si tu peux. +-- Controles a la fin : n_*_restant = 0 + +SET NAMES utf8mb4; +SET @eve := 1290; +SET @m := CONVERT(UNHEX('C383') USING utf8mb4); + +-- Raccourci : une expression de correction (meme mapping FR courant) +-- On applique REPLACE en chaine sur chaque colonne. + +UPDATE resultats_participants +SET + par_nom = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + par_nom, + CONVERT(UNHEX('C383E280B0') USING utf8mb4), CONVERT(UNHEX('C389') USING utf8mb4)), + CONVERT(UNHEX('C383C389') USING utf8mb4), CONVERT(UNHEX('C389') USING utf8mb4)), + CONVERT(UNHEX('C383CB86') USING utf8mb4), CONVERT(UNHEX('C388') USING utf8mb4)), + CONVERT(UNHEX('C383C388') USING utf8mb4), CONVERT(UNHEX('C388') USING utf8mb4)), + CONVERT(UNHEX('C383E282AC') USING utf8mb4), CONVERT(UNHEX('C380') USING utf8mb4)), + CONVERT(UNHEX('C383C380') USING utf8mb4), CONVERT(UNHEX('C380') USING utf8mb4)), + CONVERT(UNHEX('C383E280A1') USING utf8mb4), CONVERT(UNHEX('C387') USING utf8mb4)), + CONVERT(UNHEX('C383C387') USING utf8mb4), CONVERT(UNHEX('C387') USING utf8mb4)), + CONVERT(UNHEX('C383C2A9') USING utf8mb4), CONVERT(UNHEX('C3A9') USING utf8mb4)), + CONVERT(UNHEX('C383C3A9') USING utf8mb4), CONVERT(UNHEX('C3A9') USING utf8mb4)), + CONVERT(UNHEX('C383C2A8') USING utf8mb4), CONVERT(UNHEX('C3A8') USING utf8mb4)), + CONVERT(UNHEX('C383C3A8') USING utf8mb4), CONVERT(UNHEX('C3A8') USING utf8mb4)), + CONVERT(UNHEX('C383C2AA') USING utf8mb4), CONVERT(UNHEX('C3AA') USING utf8mb4)), + CONVERT(UNHEX('C383C2AB') USING utf8mb4), CONVERT(UNHEX('C3AB') USING utf8mb4)), + CONVERT(UNHEX('C383C2A0') USING utf8mb4), CONVERT(UNHEX('C3A0') USING utf8mb4)), + CONVERT(UNHEX('C383C3A0') USING utf8mb4), CONVERT(UNHEX('C3A0') USING utf8mb4)), + CONVERT(UNHEX('C383C2A2') USING utf8mb4), CONVERT(UNHEX('C3A2') USING utf8mb4)), + CONVERT(UNHEX('C383C2A7') USING utf8mb4), CONVERT(UNHEX('C3A7') USING utf8mb4)), + CONVERT(UNHEX('C383C3A7') USING utf8mb4), CONVERT(UNHEX('C3A7') USING utf8mb4)), + CONVERT(UNHEX('C383C2AE') USING utf8mb4), CONVERT(UNHEX('C3AE') USING utf8mb4)), + CONVERT(UNHEX('C383C2AF') USING utf8mb4), CONVERT(UNHEX('C3AF') USING utf8mb4)), + CONVERT(UNHEX('C383C2B4') USING utf8mb4), CONVERT(UNHEX('C3B4') USING utf8mb4)), + CONVERT(UNHEX('C383C2B9') USING utf8mb4), CONVERT(UNHEX('C3B9') USING utf8mb4)), + CONVERT(UNHEX('C383C2BB') USING utf8mb4), CONVERT(UNHEX('C3BB') USING utf8mb4)), + CONVERT(UNHEX('C383C2BC') USING utf8mb4), CONVERT(UNHEX('C3BC') USING utf8mb4)), + CONVERT(UNHEX('C383C5A0') USING utf8mb4), CONVERT(UNHEX('C38A') USING utf8mb4)), + CONVERT(UNHEX('C383E2809A') USING utf8mb4), CONVERT(UNHEX('C382') USING utf8mb4)), + CONVERT(UNHEX('C383C5BD') USING utf8mb4), CONVERT(UNHEX('C38E') USING utf8mb4)), + CONVERT(UNHEX('C383E2809D') USING utf8mb4), CONVERT(UNHEX('C394') USING utf8mb4)), + CONVERT(UNHEX('C383E284A2') USING utf8mb4), CONVERT(UNHEX('C399') USING utf8mb4)), + par_prenom = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + par_prenom, + CONVERT(UNHEX('C383E280B0') USING utf8mb4), CONVERT(UNHEX('C389') USING utf8mb4)), + CONVERT(UNHEX('C383C389') USING utf8mb4), CONVERT(UNHEX('C389') USING utf8mb4)), + CONVERT(UNHEX('C383CB86') USING utf8mb4), CONVERT(UNHEX('C388') USING utf8mb4)), + CONVERT(UNHEX('C383C388') USING utf8mb4), CONVERT(UNHEX('C388') USING utf8mb4)), + CONVERT(UNHEX('C383E282AC') USING utf8mb4), CONVERT(UNHEX('C380') USING utf8mb4)), + CONVERT(UNHEX('C383C380') USING utf8mb4), CONVERT(UNHEX('C380') USING utf8mb4)), + CONVERT(UNHEX('C383E280A1') USING utf8mb4), CONVERT(UNHEX('C387') USING utf8mb4)), + CONVERT(UNHEX('C383C387') USING utf8mb4), CONVERT(UNHEX('C387') USING utf8mb4)), + CONVERT(UNHEX('C383C2A9') USING utf8mb4), CONVERT(UNHEX('C3A9') USING utf8mb4)), + CONVERT(UNHEX('C383C3A9') USING utf8mb4), CONVERT(UNHEX('C3A9') USING utf8mb4)), + CONVERT(UNHEX('C383C2A8') USING utf8mb4), CONVERT(UNHEX('C3A8') USING utf8mb4)), + CONVERT(UNHEX('C383C3A8') USING utf8mb4), CONVERT(UNHEX('C3A8') USING utf8mb4)), + CONVERT(UNHEX('C383C2AA') USING utf8mb4), CONVERT(UNHEX('C3AA') USING utf8mb4)), + CONVERT(UNHEX('C383C2AB') USING utf8mb4), CONVERT(UNHEX('C3AB') USING utf8mb4)), + CONVERT(UNHEX('C383C2A0') USING utf8mb4), CONVERT(UNHEX('C3A0') USING utf8mb4)), + CONVERT(UNHEX('C383C3A0') USING utf8mb4), CONVERT(UNHEX('C3A0') USING utf8mb4)), + CONVERT(UNHEX('C383C2A2') USING utf8mb4), CONVERT(UNHEX('C3A2') USING utf8mb4)), + CONVERT(UNHEX('C383C2A7') USING utf8mb4), CONVERT(UNHEX('C3A7') USING utf8mb4)), + CONVERT(UNHEX('C383C3A7') USING utf8mb4), CONVERT(UNHEX('C3A7') USING utf8mb4)), + CONVERT(UNHEX('C383C2AE') USING utf8mb4), CONVERT(UNHEX('C3AE') USING utf8mb4)), + CONVERT(UNHEX('C383C2AF') USING utf8mb4), CONVERT(UNHEX('C3AF') USING utf8mb4)), + CONVERT(UNHEX('C383C2B4') USING utf8mb4), CONVERT(UNHEX('C3B4') USING utf8mb4)), + CONVERT(UNHEX('C383C2B9') USING utf8mb4), CONVERT(UNHEX('C3B9') USING utf8mb4)), + CONVERT(UNHEX('C383C2BB') USING utf8mb4), CONVERT(UNHEX('C3BB') USING utf8mb4)), + CONVERT(UNHEX('C383C2BC') USING utf8mb4), CONVERT(UNHEX('C3BC') USING utf8mb4)), + CONVERT(UNHEX('C383C5A0') USING utf8mb4), CONVERT(UNHEX('C38A') USING utf8mb4)), + CONVERT(UNHEX('C383E2809A') USING utf8mb4), CONVERT(UNHEX('C382') USING utf8mb4)), + CONVERT(UNHEX('C383C5BD') USING utf8mb4), CONVERT(UNHEX('C38E') USING utf8mb4)), + CONVERT(UNHEX('C383E2809D') USING utf8mb4), CONVERT(UNHEX('C394') USING utf8mb4)), + CONVERT(UNHEX('C383E284A2') USING utf8mb4), CONVERT(UNHEX('C399') USING utf8mb4)), + par_nom_equipe = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + IFNULL(par_nom_equipe, ''), + CONVERT(UNHEX('C383E280B0') USING utf8mb4), CONVERT(UNHEX('C389') USING utf8mb4)), + CONVERT(UNHEX('C383C389') USING utf8mb4), CONVERT(UNHEX('C389') USING utf8mb4)), + CONVERT(UNHEX('C383CB86') USING utf8mb4), CONVERT(UNHEX('C388') USING utf8mb4)), + CONVERT(UNHEX('C383C388') USING utf8mb4), CONVERT(UNHEX('C388') USING utf8mb4)), + CONVERT(UNHEX('C383E282AC') USING utf8mb4), CONVERT(UNHEX('C380') USING utf8mb4)), + CONVERT(UNHEX('C383C380') USING utf8mb4), CONVERT(UNHEX('C380') USING utf8mb4)), + CONVERT(UNHEX('C383E280A1') USING utf8mb4), CONVERT(UNHEX('C387') USING utf8mb4)), + CONVERT(UNHEX('C383C387') USING utf8mb4), CONVERT(UNHEX('C387') USING utf8mb4)), + CONVERT(UNHEX('C383C2A9') USING utf8mb4), CONVERT(UNHEX('C3A9') USING utf8mb4)), + CONVERT(UNHEX('C383C3A9') USING utf8mb4), CONVERT(UNHEX('C3A9') USING utf8mb4)), + CONVERT(UNHEX('C383C2A8') USING utf8mb4), CONVERT(UNHEX('C3A8') USING utf8mb4)), + CONVERT(UNHEX('C383C3A8') USING utf8mb4), CONVERT(UNHEX('C3A8') USING utf8mb4)), + CONVERT(UNHEX('C383C2AA') USING utf8mb4), CONVERT(UNHEX('C3AA') USING utf8mb4)), + CONVERT(UNHEX('C383C2AB') USING utf8mb4), CONVERT(UNHEX('C3AB') USING utf8mb4)), + CONVERT(UNHEX('C383C2A0') USING utf8mb4), CONVERT(UNHEX('C3A0') USING utf8mb4)), + CONVERT(UNHEX('C383C3A0') USING utf8mb4), CONVERT(UNHEX('C3A0') USING utf8mb4)), + CONVERT(UNHEX('C383C2A2') USING utf8mb4), CONVERT(UNHEX('C3A2') USING utf8mb4)), + CONVERT(UNHEX('C383C2A7') USING utf8mb4), CONVERT(UNHEX('C3A7') USING utf8mb4)), + CONVERT(UNHEX('C383C3A7') USING utf8mb4), CONVERT(UNHEX('C3A7') USING utf8mb4)), + CONVERT(UNHEX('C383C2AE') USING utf8mb4), CONVERT(UNHEX('C3AE') USING utf8mb4)), + CONVERT(UNHEX('C383C2AF') USING utf8mb4), CONVERT(UNHEX('C3AF') USING utf8mb4)), + CONVERT(UNHEX('C383C2B4') USING utf8mb4), CONVERT(UNHEX('C3B4') USING utf8mb4)), + CONVERT(UNHEX('C383C2B9') USING utf8mb4), CONVERT(UNHEX('C3B9') USING utf8mb4)), + CONVERT(UNHEX('C383C2BB') USING utf8mb4), CONVERT(UNHEX('C3BB') USING utf8mb4)), + CONVERT(UNHEX('C383C2BC') USING utf8mb4), CONVERT(UNHEX('C3BC') USING utf8mb4)), + CONVERT(UNHEX('C383C5A0') USING utf8mb4), CONVERT(UNHEX('C38A') USING utf8mb4)), + CONVERT(UNHEX('C383E2809A') USING utf8mb4), CONVERT(UNHEX('C382') USING utf8mb4)), + CONVERT(UNHEX('C383C5BD') USING utf8mb4), CONVERT(UNHEX('C38E') USING utf8mb4)), + CONVERT(UNHEX('C383E2809D') USING utf8mb4), CONVERT(UNHEX('C394') USING utf8mb4)), + CONVERT(UNHEX('C383E284A2') USING utf8mb4), CONVERT(UNHEX('C399') USING utf8mb4)), + par_adresse = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + IFNULL(par_adresse, ''), + CONVERT(UNHEX('C383E280B0') USING utf8mb4), CONVERT(UNHEX('C389') USING utf8mb4)), + CONVERT(UNHEX('C383C389') USING utf8mb4), CONVERT(UNHEX('C389') USING utf8mb4)), + CONVERT(UNHEX('C383CB86') USING utf8mb4), CONVERT(UNHEX('C388') USING utf8mb4)), + CONVERT(UNHEX('C383C388') USING utf8mb4), CONVERT(UNHEX('C388') USING utf8mb4)), + CONVERT(UNHEX('C383E282AC') USING utf8mb4), CONVERT(UNHEX('C380') USING utf8mb4)), + CONVERT(UNHEX('C383C380') USING utf8mb4), CONVERT(UNHEX('C380') USING utf8mb4)), + CONVERT(UNHEX('C383E280A1') USING utf8mb4), CONVERT(UNHEX('C387') USING utf8mb4)), + CONVERT(UNHEX('C383C387') USING utf8mb4), CONVERT(UNHEX('C387') USING utf8mb4)), + CONVERT(UNHEX('C383C2A9') USING utf8mb4), CONVERT(UNHEX('C3A9') USING utf8mb4)), + CONVERT(UNHEX('C383C3A9') USING utf8mb4), CONVERT(UNHEX('C3A9') USING utf8mb4)), + CONVERT(UNHEX('C383C2A8') USING utf8mb4), CONVERT(UNHEX('C3A8') USING utf8mb4)), + CONVERT(UNHEX('C383C3A8') USING utf8mb4), CONVERT(UNHEX('C3A8') USING utf8mb4)), + CONVERT(UNHEX('C383C2AA') USING utf8mb4), CONVERT(UNHEX('C3AA') USING utf8mb4)), + CONVERT(UNHEX('C383C2AB') USING utf8mb4), CONVERT(UNHEX('C3AB') USING utf8mb4)), + CONVERT(UNHEX('C383C2A0') USING utf8mb4), CONVERT(UNHEX('C3A0') USING utf8mb4)), + CONVERT(UNHEX('C383C3A0') USING utf8mb4), CONVERT(UNHEX('C3A0') USING utf8mb4)), + CONVERT(UNHEX('C383C2A2') USING utf8mb4), CONVERT(UNHEX('C3A2') USING utf8mb4)), + CONVERT(UNHEX('C383C2A7') USING utf8mb4), CONVERT(UNHEX('C3A7') USING utf8mb4)), + CONVERT(UNHEX('C383C3A7') USING utf8mb4), CONVERT(UNHEX('C3A7') USING utf8mb4)), + CONVERT(UNHEX('C383C2AE') USING utf8mb4), CONVERT(UNHEX('C3AE') USING utf8mb4)), + CONVERT(UNHEX('C383C2AF') USING utf8mb4), CONVERT(UNHEX('C3AF') USING utf8mb4)), + CONVERT(UNHEX('C383C2B4') USING utf8mb4), CONVERT(UNHEX('C3B4') USING utf8mb4)), + CONVERT(UNHEX('C383C2B9') USING utf8mb4), CONVERT(UNHEX('C3B9') USING utf8mb4)), + CONVERT(UNHEX('C383C2BB') USING utf8mb4), CONVERT(UNHEX('C3BB') USING utf8mb4)), + CONVERT(UNHEX('C383C2BC') USING utf8mb4), CONVERT(UNHEX('C3BC') USING utf8mb4)), + CONVERT(UNHEX('C383C5A0') USING utf8mb4), CONVERT(UNHEX('C38A') USING utf8mb4)), + CONVERT(UNHEX('C383E2809A') USING utf8mb4), CONVERT(UNHEX('C382') USING utf8mb4)), + CONVERT(UNHEX('C383C5BD') USING utf8mb4), CONVERT(UNHEX('C38E') USING utf8mb4)), + CONVERT(UNHEX('C383E2809D') USING utf8mb4), CONVERT(UNHEX('C394') USING utf8mb4)), + CONVERT(UNHEX('C383E284A2') USING utf8mb4), CONVERT(UNHEX('C399') USING utf8mb4)), + par_ville = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + IFNULL(par_ville, ''), + CONVERT(UNHEX('C383E280B0') USING utf8mb4), CONVERT(UNHEX('C389') USING utf8mb4)), + CONVERT(UNHEX('C383C389') USING utf8mb4), CONVERT(UNHEX('C389') USING utf8mb4)), + CONVERT(UNHEX('C383CB86') USING utf8mb4), CONVERT(UNHEX('C388') USING utf8mb4)), + CONVERT(UNHEX('C383C388') USING utf8mb4), CONVERT(UNHEX('C388') USING utf8mb4)), + CONVERT(UNHEX('C383E282AC') USING utf8mb4), CONVERT(UNHEX('C380') USING utf8mb4)), + CONVERT(UNHEX('C383C380') USING utf8mb4), CONVERT(UNHEX('C380') USING utf8mb4)), + CONVERT(UNHEX('C383E280A1') USING utf8mb4), CONVERT(UNHEX('C387') USING utf8mb4)), + CONVERT(UNHEX('C383C387') USING utf8mb4), CONVERT(UNHEX('C387') USING utf8mb4)), + CONVERT(UNHEX('C383C2A9') USING utf8mb4), CONVERT(UNHEX('C3A9') USING utf8mb4)), + CONVERT(UNHEX('C383C3A9') USING utf8mb4), CONVERT(UNHEX('C3A9') USING utf8mb4)), + CONVERT(UNHEX('C383C2A8') USING utf8mb4), CONVERT(UNHEX('C3A8') USING utf8mb4)), + CONVERT(UNHEX('C383C3A8') USING utf8mb4), CONVERT(UNHEX('C3A8') USING utf8mb4)), + CONVERT(UNHEX('C383C2AA') USING utf8mb4), CONVERT(UNHEX('C3AA') USING utf8mb4)), + CONVERT(UNHEX('C383C2AB') USING utf8mb4), CONVERT(UNHEX('C3AB') USING utf8mb4)), + CONVERT(UNHEX('C383C2A0') USING utf8mb4), CONVERT(UNHEX('C3A0') USING utf8mb4)), + CONVERT(UNHEX('C383C3A0') USING utf8mb4), CONVERT(UNHEX('C3A0') USING utf8mb4)), + CONVERT(UNHEX('C383C2A2') USING utf8mb4), CONVERT(UNHEX('C3A2') USING utf8mb4)), + CONVERT(UNHEX('C383C2A7') USING utf8mb4), CONVERT(UNHEX('C3A7') USING utf8mb4)), + CONVERT(UNHEX('C383C3A7') USING utf8mb4), CONVERT(UNHEX('C3A7') USING utf8mb4)), + CONVERT(UNHEX('C383C2AE') USING utf8mb4), CONVERT(UNHEX('C3AE') USING utf8mb4)), + CONVERT(UNHEX('C383C2AF') USING utf8mb4), CONVERT(UNHEX('C3AF') USING utf8mb4)), + CONVERT(UNHEX('C383C2B4') USING utf8mb4), CONVERT(UNHEX('C3B4') USING utf8mb4)), + CONVERT(UNHEX('C383C2B9') USING utf8mb4), CONVERT(UNHEX('C3B9') USING utf8mb4)), + CONVERT(UNHEX('C383C2BB') USING utf8mb4), CONVERT(UNHEX('C3BB') USING utf8mb4)), + CONVERT(UNHEX('C383C2BC') USING utf8mb4), CONVERT(UNHEX('C3BC') USING utf8mb4)), + CONVERT(UNHEX('C383C5A0') USING utf8mb4), CONVERT(UNHEX('C38A') USING utf8mb4)), + CONVERT(UNHEX('C383E2809A') USING utf8mb4), CONVERT(UNHEX('C382') USING utf8mb4)), + CONVERT(UNHEX('C383C5BD') USING utf8mb4), CONVERT(UNHEX('C38E') USING utf8mb4)), + CONVERT(UNHEX('C383E2809D') USING utf8mb4), CONVERT(UNHEX('C394') USING utf8mb4)), + CONVERT(UNHEX('C383E284A2') USING utf8mb4), CONVERT(UNHEX('C399') USING utf8mb4)), + par_contact_urgence_nom = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + IFNULL(par_contact_urgence_nom, ''), + CONVERT(UNHEX('C383E280B0') USING utf8mb4), CONVERT(UNHEX('C389') USING utf8mb4)), + CONVERT(UNHEX('C383C389') USING utf8mb4), CONVERT(UNHEX('C389') USING utf8mb4)), + CONVERT(UNHEX('C383CB86') USING utf8mb4), CONVERT(UNHEX('C388') USING utf8mb4)), + CONVERT(UNHEX('C383C388') USING utf8mb4), CONVERT(UNHEX('C388') USING utf8mb4)), + CONVERT(UNHEX('C383E282AC') USING utf8mb4), CONVERT(UNHEX('C380') USING utf8mb4)), + CONVERT(UNHEX('C383C380') USING utf8mb4), CONVERT(UNHEX('C380') USING utf8mb4)), + CONVERT(UNHEX('C383E280A1') USING utf8mb4), CONVERT(UNHEX('C387') USING utf8mb4)), + CONVERT(UNHEX('C383C387') USING utf8mb4), CONVERT(UNHEX('C387') USING utf8mb4)), + CONVERT(UNHEX('C383C2A9') USING utf8mb4), CONVERT(UNHEX('C3A9') USING utf8mb4)), + CONVERT(UNHEX('C383C3A9') USING utf8mb4), CONVERT(UNHEX('C3A9') USING utf8mb4)), + CONVERT(UNHEX('C383C2A8') USING utf8mb4), CONVERT(UNHEX('C3A8') USING utf8mb4)), + CONVERT(UNHEX('C383C3A8') USING utf8mb4), CONVERT(UNHEX('C3A8') USING utf8mb4)), + CONVERT(UNHEX('C383C2AA') USING utf8mb4), CONVERT(UNHEX('C3AA') USING utf8mb4)), + CONVERT(UNHEX('C383C2AB') USING utf8mb4), CONVERT(UNHEX('C3AB') USING utf8mb4)), + CONVERT(UNHEX('C383C2A0') USING utf8mb4), CONVERT(UNHEX('C3A0') USING utf8mb4)), + CONVERT(UNHEX('C383C3A0') USING utf8mb4), CONVERT(UNHEX('C3A0') USING utf8mb4)), + CONVERT(UNHEX('C383C2A2') USING utf8mb4), CONVERT(UNHEX('C3A2') USING utf8mb4)), + CONVERT(UNHEX('C383C2A7') USING utf8mb4), CONVERT(UNHEX('C3A7') USING utf8mb4)), + CONVERT(UNHEX('C383C3A7') USING utf8mb4), CONVERT(UNHEX('C3A7') USING utf8mb4)), + CONVERT(UNHEX('C383C2AE') USING utf8mb4), CONVERT(UNHEX('C3AE') USING utf8mb4)), + CONVERT(UNHEX('C383C2AF') USING utf8mb4), CONVERT(UNHEX('C3AF') USING utf8mb4)), + CONVERT(UNHEX('C383C2B4') USING utf8mb4), CONVERT(UNHEX('C3B4') USING utf8mb4)), + CONVERT(UNHEX('C383C2B9') USING utf8mb4), CONVERT(UNHEX('C3B9') USING utf8mb4)), + CONVERT(UNHEX('C383C2BB') USING utf8mb4), CONVERT(UNHEX('C3BB') USING utf8mb4)), + CONVERT(UNHEX('C383C2BC') USING utf8mb4), CONVERT(UNHEX('C3BC') USING utf8mb4)), + CONVERT(UNHEX('C383C5A0') USING utf8mb4), CONVERT(UNHEX('C38A') USING utf8mb4)), + CONVERT(UNHEX('C383E2809A') USING utf8mb4), CONVERT(UNHEX('C382') USING utf8mb4)), + CONVERT(UNHEX('C383C5BD') USING utf8mb4), CONVERT(UNHEX('C38E') USING utf8mb4)), + CONVERT(UNHEX('C383E2809D') USING utf8mb4), CONVERT(UNHEX('C394') USING utf8mb4)), + CONVERT(UNHEX('C383E284A2') USING utf8mb4), CONVERT(UNHEX('C399') USING utf8mb4)) +WHERE eve_id = @eve + AND par_origine = 'import_fichier' + AND ( + par_nom LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + OR par_prenom LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + OR IFNULL(par_nom_equipe, '') LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + OR IFNULL(par_adresse, '') LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + OR IFNULL(par_ville, '') LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + OR IFNULL(par_contact_urgence_nom, '') LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + ); + +UPDATE resultats_epreuves_commandees e +INNER JOIN resultats_participants p + ON p.eve_id = e.eve_id + AND (p.pec_id = e.pec_id_original OR p.pec_id = e.pec_id) + AND p.par_origine = 'import_fichier' +SET e.pec_nom_equipe = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + IFNULL(e.pec_nom_equipe, ''), + CONVERT(UNHEX('C383E280B0') USING utf8mb4), CONVERT(UNHEX('C389') USING utf8mb4)), + CONVERT(UNHEX('C383C389') USING utf8mb4), CONVERT(UNHEX('C389') USING utf8mb4)), + CONVERT(UNHEX('C383CB86') USING utf8mb4), CONVERT(UNHEX('C388') USING utf8mb4)), + CONVERT(UNHEX('C383C388') USING utf8mb4), CONVERT(UNHEX('C388') USING utf8mb4)), + CONVERT(UNHEX('C383E282AC') USING utf8mb4), CONVERT(UNHEX('C380') USING utf8mb4)), + CONVERT(UNHEX('C383C380') USING utf8mb4), CONVERT(UNHEX('C380') USING utf8mb4)), + CONVERT(UNHEX('C383E280A1') USING utf8mb4), CONVERT(UNHEX('C387') USING utf8mb4)), + CONVERT(UNHEX('C383C387') USING utf8mb4), CONVERT(UNHEX('C387') USING utf8mb4)), + CONVERT(UNHEX('C383C2A9') USING utf8mb4), CONVERT(UNHEX('C3A9') USING utf8mb4)), + CONVERT(UNHEX('C383C3A9') USING utf8mb4), CONVERT(UNHEX('C3A9') USING utf8mb4)), + CONVERT(UNHEX('C383C2A8') USING utf8mb4), CONVERT(UNHEX('C3A8') USING utf8mb4)), + CONVERT(UNHEX('C383C3A8') USING utf8mb4), CONVERT(UNHEX('C3A8') USING utf8mb4)), + CONVERT(UNHEX('C383C2AA') USING utf8mb4), CONVERT(UNHEX('C3AA') USING utf8mb4)), + CONVERT(UNHEX('C383C2AB') USING utf8mb4), CONVERT(UNHEX('C3AB') USING utf8mb4)), + CONVERT(UNHEX('C383C2A0') USING utf8mb4), CONVERT(UNHEX('C3A0') USING utf8mb4)), + CONVERT(UNHEX('C383C3A0') USING utf8mb4), CONVERT(UNHEX('C3A0') USING utf8mb4)), + CONVERT(UNHEX('C383C2A2') USING utf8mb4), CONVERT(UNHEX('C3A2') USING utf8mb4)), + CONVERT(UNHEX('C383C2A7') USING utf8mb4), CONVERT(UNHEX('C3A7') USING utf8mb4)), + CONVERT(UNHEX('C383C3A7') USING utf8mb4), CONVERT(UNHEX('C3A7') USING utf8mb4)), + CONVERT(UNHEX('C383C2AE') USING utf8mb4), CONVERT(UNHEX('C3AE') USING utf8mb4)), + CONVERT(UNHEX('C383C2AF') USING utf8mb4), CONVERT(UNHEX('C3AF') USING utf8mb4)), + CONVERT(UNHEX('C383C2B4') USING utf8mb4), CONVERT(UNHEX('C3B4') USING utf8mb4)), + CONVERT(UNHEX('C383C2B9') USING utf8mb4), CONVERT(UNHEX('C3B9') USING utf8mb4)), + CONVERT(UNHEX('C383C2BB') USING utf8mb4), CONVERT(UNHEX('C3BB') USING utf8mb4)), + CONVERT(UNHEX('C383C2BC') USING utf8mb4), CONVERT(UNHEX('C3BC') USING utf8mb4)), + CONVERT(UNHEX('C383C5A0') USING utf8mb4), CONVERT(UNHEX('C38A') USING utf8mb4)), + CONVERT(UNHEX('C383E2809A') USING utf8mb4), CONVERT(UNHEX('C382') USING utf8mb4)), + CONVERT(UNHEX('C383C5BD') USING utf8mb4), CONVERT(UNHEX('C38E') USING utf8mb4)), + CONVERT(UNHEX('C383E2809D') USING utf8mb4), CONVERT(UNHEX('C394') USING utf8mb4)), + CONVERT(UNHEX('C383E284A2') USING utf8mb4), CONVERT(UNHEX('C399') USING utf8mb4)) +WHERE e.eve_id = @eve + AND IFNULL(e.pec_nom_equipe, '') LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin; + +UPDATE resultats_questions q +INNER JOIN resultats_participants p + ON p.eve_id = @eve + AND p.par_origine = 'import_fichier' + AND (q.par_id = p.par_id OR q.par_id = p.par_id_original) +SET + q.que_choix_fr = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + IFNULL(q.que_choix_fr, ''), + CONVERT(UNHEX('C383E280B0') USING utf8mb4), CONVERT(UNHEX('C389') USING utf8mb4)), + CONVERT(UNHEX('C383C389') USING utf8mb4), CONVERT(UNHEX('C389') USING utf8mb4)), + CONVERT(UNHEX('C383CB86') USING utf8mb4), CONVERT(UNHEX('C388') USING utf8mb4)), + CONVERT(UNHEX('C383C388') USING utf8mb4), CONVERT(UNHEX('C388') USING utf8mb4)), + CONVERT(UNHEX('C383E282AC') USING utf8mb4), CONVERT(UNHEX('C380') USING utf8mb4)), + CONVERT(UNHEX('C383C380') USING utf8mb4), CONVERT(UNHEX('C380') USING utf8mb4)), + CONVERT(UNHEX('C383E280A1') USING utf8mb4), CONVERT(UNHEX('C387') USING utf8mb4)), + CONVERT(UNHEX('C383C387') USING utf8mb4), CONVERT(UNHEX('C387') USING utf8mb4)), + CONVERT(UNHEX('C383C2A9') USING utf8mb4), CONVERT(UNHEX('C3A9') USING utf8mb4)), + CONVERT(UNHEX('C383C3A9') USING utf8mb4), CONVERT(UNHEX('C3A9') USING utf8mb4)), + CONVERT(UNHEX('C383C2A8') USING utf8mb4), CONVERT(UNHEX('C3A8') USING utf8mb4)), + CONVERT(UNHEX('C383C3A8') USING utf8mb4), CONVERT(UNHEX('C3A8') USING utf8mb4)), + CONVERT(UNHEX('C383C2AA') USING utf8mb4), CONVERT(UNHEX('C3AA') USING utf8mb4)), + CONVERT(UNHEX('C383C2AB') USING utf8mb4), CONVERT(UNHEX('C3AB') USING utf8mb4)), + CONVERT(UNHEX('C383C2A0') USING utf8mb4), CONVERT(UNHEX('C3A0') USING utf8mb4)), + CONVERT(UNHEX('C383C3A0') USING utf8mb4), CONVERT(UNHEX('C3A0') USING utf8mb4)), + CONVERT(UNHEX('C383C2A2') USING utf8mb4), CONVERT(UNHEX('C3A2') USING utf8mb4)), + CONVERT(UNHEX('C383C2A7') USING utf8mb4), CONVERT(UNHEX('C3A7') USING utf8mb4)), + CONVERT(UNHEX('C383C3A7') USING utf8mb4), CONVERT(UNHEX('C3A7') USING utf8mb4)), + CONVERT(UNHEX('C383C2AE') USING utf8mb4), CONVERT(UNHEX('C3AE') USING utf8mb4)), + CONVERT(UNHEX('C383C2AF') USING utf8mb4), CONVERT(UNHEX('C3AF') USING utf8mb4)), + CONVERT(UNHEX('C383C2B4') USING utf8mb4), CONVERT(UNHEX('C3B4') USING utf8mb4)), + CONVERT(UNHEX('C383C2B9') USING utf8mb4), CONVERT(UNHEX('C3B9') USING utf8mb4)), + CONVERT(UNHEX('C383C2BB') USING utf8mb4), CONVERT(UNHEX('C3BB') USING utf8mb4)), + CONVERT(UNHEX('C383C2BC') USING utf8mb4), CONVERT(UNHEX('C3BC') USING utf8mb4)), + CONVERT(UNHEX('C383C5A0') USING utf8mb4), CONVERT(UNHEX('C38A') USING utf8mb4)), + CONVERT(UNHEX('C383E2809A') USING utf8mb4), CONVERT(UNHEX('C382') USING utf8mb4)), + CONVERT(UNHEX('C383C5BD') USING utf8mb4), CONVERT(UNHEX('C38E') USING utf8mb4)), + CONVERT(UNHEX('C383E2809D') USING utf8mb4), CONVERT(UNHEX('C394') USING utf8mb4)), + CONVERT(UNHEX('C383E284A2') USING utf8mb4), CONVERT(UNHEX('C399') USING utf8mb4)), + q.que_choix_en = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( + IFNULL(q.que_choix_en, ''), + CONVERT(UNHEX('C383E280B0') USING utf8mb4), CONVERT(UNHEX('C389') USING utf8mb4)), + CONVERT(UNHEX('C383C389') USING utf8mb4), CONVERT(UNHEX('C389') USING utf8mb4)), + CONVERT(UNHEX('C383CB86') USING utf8mb4), CONVERT(UNHEX('C388') USING utf8mb4)), + CONVERT(UNHEX('C383C388') USING utf8mb4), CONVERT(UNHEX('C388') USING utf8mb4)), + CONVERT(UNHEX('C383E282AC') USING utf8mb4), CONVERT(UNHEX('C380') USING utf8mb4)), + CONVERT(UNHEX('C383C380') USING utf8mb4), CONVERT(UNHEX('C380') USING utf8mb4)), + CONVERT(UNHEX('C383E280A1') USING utf8mb4), CONVERT(UNHEX('C387') USING utf8mb4)), + CONVERT(UNHEX('C383C387') USING utf8mb4), CONVERT(UNHEX('C387') USING utf8mb4)), + CONVERT(UNHEX('C383C2A9') USING utf8mb4), CONVERT(UNHEX('C3A9') USING utf8mb4)), + CONVERT(UNHEX('C383C3A9') USING utf8mb4), CONVERT(UNHEX('C3A9') USING utf8mb4)), + CONVERT(UNHEX('C383C2A8') USING utf8mb4), CONVERT(UNHEX('C3A8') USING utf8mb4)), + CONVERT(UNHEX('C383C3A8') USING utf8mb4), CONVERT(UNHEX('C3A8') USING utf8mb4)), + CONVERT(UNHEX('C383C2AA') USING utf8mb4), CONVERT(UNHEX('C3AA') USING utf8mb4)), + CONVERT(UNHEX('C383C2AB') USING utf8mb4), CONVERT(UNHEX('C3AB') USING utf8mb4)), + CONVERT(UNHEX('C383C2A0') USING utf8mb4), CONVERT(UNHEX('C3A0') USING utf8mb4)), + CONVERT(UNHEX('C383C3A0') USING utf8mb4), CONVERT(UNHEX('C3A0') USING utf8mb4)), + CONVERT(UNHEX('C383C2A2') USING utf8mb4), CONVERT(UNHEX('C3A2') USING utf8mb4)), + CONVERT(UNHEX('C383C2A7') USING utf8mb4), CONVERT(UNHEX('C3A7') USING utf8mb4)), + CONVERT(UNHEX('C383C3A7') USING utf8mb4), CONVERT(UNHEX('C3A7') USING utf8mb4)), + CONVERT(UNHEX('C383C2AE') USING utf8mb4), CONVERT(UNHEX('C3AE') USING utf8mb4)), + CONVERT(UNHEX('C383C2AF') USING utf8mb4), CONVERT(UNHEX('C3AF') USING utf8mb4)), + CONVERT(UNHEX('C383C2B4') USING utf8mb4), CONVERT(UNHEX('C3B4') USING utf8mb4)), + CONVERT(UNHEX('C383C2B9') USING utf8mb4), CONVERT(UNHEX('C3B9') USING utf8mb4)), + CONVERT(UNHEX('C383C2BB') USING utf8mb4), CONVERT(UNHEX('C3BB') USING utf8mb4)), + CONVERT(UNHEX('C383C2BC') USING utf8mb4), CONVERT(UNHEX('C3BC') USING utf8mb4)), + CONVERT(UNHEX('C383C5A0') USING utf8mb4), CONVERT(UNHEX('C38A') USING utf8mb4)), + CONVERT(UNHEX('C383E2809A') USING utf8mb4), CONVERT(UNHEX('C382') USING utf8mb4)), + CONVERT(UNHEX('C383C5BD') USING utf8mb4), CONVERT(UNHEX('C38E') USING utf8mb4)), + CONVERT(UNHEX('C383E2809D') USING utf8mb4), CONVERT(UNHEX('C394') USING utf8mb4)), + CONVERT(UNHEX('C383E284A2') USING utf8mb4), CONVERT(UNHEX('C399') USING utf8mb4)) +WHERE IFNULL(q.que_choix_fr, '') LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + OR IFNULL(q.que_choix_en, '') LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin; + +-- Controles (attendu 0) +SELECT COUNT(*) AS n_par_restant +FROM resultats_participants +WHERE eve_id = @eve AND par_origine = 'import_fichier' + AND ( + par_nom LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + OR par_prenom LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + OR IFNULL(par_nom_equipe, '') LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + ); + +SELECT COUNT(*) AS n_pec_restant +FROM resultats_epreuves_commandees e +INNER JOIN resultats_participants p + ON p.eve_id = e.eve_id AND (p.pec_id = e.pec_id_original OR p.pec_id = e.pec_id) +WHERE e.eve_id = @eve AND p.par_origine = 'import_fichier' + AND IFNULL(e.pec_nom_equipe, '') LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin; + +SELECT COUNT(*) AS n_que_restant +FROM resultats_questions q +INNER JOIN resultats_participants p + ON p.eve_id = @eve AND p.par_origine = 'import_fichier' + AND (q.par_id = p.par_id OR q.par_id = p.par_id_original) +WHERE IFNULL(q.que_choix_fr, '') LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin + OR IFNULL(q.que_choix_en, '') LIKE CONCAT('%', @m, '%') COLLATE utf8mb4_bin;