| Line 6... |
Line 6... |
| 6 |
|
6 |
|
| 7 |
Pour éviter un maximum de faux-positifs, nous vérifions aussi que la famille
|
7 |
Pour éviter un maximum de faux-positifs, nous vérifions aussi que la famille
|
| 8 |
est conservée (même dans certains cas celle-ci a légitimement changé) et que
|
8 |
est conservée (même dans certains cas celle-ci a légitimement changé) et que
|
| 9 |
la première partie du nom_sel correspond toujours à la première partie du nouveau nom_sci
|
9 |
la première partie du nom_sel correspond toujours à la première partie du nouveau nom_sci
|
| 10 |
qui serait attribué.
|
- |
|
| Line 11... |
Line 10... |
| 11 |
*/
|
10 |
qui serait attribué.
|
| 12 |
|
- |
|
| 13 |
--- la requête ---
|
11 |
|
| 14 |
/*
|
12 |
-- la requête --
|
| 15 |
-- SELECT id_observation, b.num_nom, CONCAT(b.nom_sci, ' ', b.auteur), b.num_taxonomique, b.famille
|
13 |
-- SELECT id_observation, b.num_nom, CONCAT(b.nom_sci, ' ', b.auteur), b.num_taxonomique, b.famille
|
| 16 |
SELECT id_observation, nom_ret, nom_ret_nn, nt, c.famille
|
14 |
SELECT id_observation, nom_ret, nom_ret_nn, nt, c.famille
|
| 17 |
FROM `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTFX` b
|
15 |
FROM `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTFX` b
|
| 18 |
WHERE (
|
16 |
WHERE (
|
| 19 |
nom_sel_nn IS NOT NULL
|
17 |
nom_sel_nn IS NOT NULL
|
| 20 |
AND nom_referentiel like 'bdtfx%'
|
18 |
AND nom_referentiel like 'bdtfx%'
|
| 21 |
AND nom_sel_nn = num_nom
|
19 |
AND nom_sel_nn = num_nom
|
| - |
|
20 |
)
|
| - |
|
21 |
ORDER BY id_observation asc;
|
| - |
|
22 |
|
| - |
|
23 |
|
| - |
|
24 |
Cependant le nom_sel_nn n'est pas directement le num_num du taxon dont le nom est
|
| - |
|
25 |
retenu. Pour cela, une jointure en bdtfx sur num_nom_retenu est nécessaire et c'est
|
| - |
|
26 |
ce dernier taxon dont le num_nom est utilisé pour nom_ret_nn.
|
| - |
|
27 |
Cependant il peut aussi être vide (si aucun nom_retenu "officiel" n'existe).
|
| - |
|
28 |
|
| - |
|
29 |
Attention, les nom_sel_nn = 0 doivent avoir disparus de cel_obs *AU PRÉALABLE*
|
| - |
|
30 |
cf: maj-cleanup-201307.sql
|
| - |
|
31 |
*/
|
| - |
|
32 |
|
| - |
|
33 |
|
| - |
|
34 |
|
| - |
|
35 |
/* test:
|
| - |
|
36 |
SELECT c.nom_ret_nn, c.nom_ret, b.nom_sci, b.auteur, c.famille, b.famille, c.nt, b.num_taxonomique
|
| - |
|
37 |
FROM cel_obs c, tb_eflore.bdtfx_v1_01 b
|
| - |
|
38 |
WHERE (
|
| - |
|
39 |
nom_sel_nn IS NOT NULL AND nom_ret_nn IS NOT NULL AND nom_ret_nn != 0
|
| - |
|
40 |
AND nom_referentiel = 'bdtfx'
|
| - |
|
41 |
AND nom_ret_nn = num_nom
|
| - |
|
42 |
AND (LOWER(c.famille) = LOWER(b.famille) OR c.famille IS NULL)
|
| - |
|
43 |
AND (c.famille != b.famille OR c.nom_ret != CONCAT(b.nom_sci, ' ', b.auteur) OR c.nt != b.num_taxonomique)
|
| 22 |
)
|
44 |
);
|
| Line 23... |
Line 45... |
| 23 |
ORDER BY id_observation asc;
|
45 |
= 2 taxons: 75134 et 75468 (changement de nt)
|
| 24 |
*/
|
46 |
*/
|
| 25 |
|
47 |
|
| - |
|
48 |
-- l'update BDTFX avec nom_sel_nn et nom_ret_nn corrects
|
| - |
|
49 |
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTFX` b SET
|
| - |
|
50 |
c.nom_ret = CONCAT(b.nom_sci, ' ', b.auteur),
|
| - |
|
51 |
c.nt = b.num_taxonomique,
|
| - |
|
52 |
c.famille = b.famille
|
| - |
|
53 |
WHERE (
|
| - |
|
54 |
nom_sel_nn IS NOT NULL AND nom_ret_nn IS NOT NULL AND nom_ret_nn != 0
|
| - |
|
55 |
AND nom_referentiel = 'bdtfx'
|
| - |
|
56 |
AND nom_ret_nn = num_nom
|
| - |
|
57 |
AND (LOWER(c.famille) = LOWER(b.famille) OR c.famille IS NULL)
|
| - |
|
58 |
);
|
| - |
|
59 |
-- 339
|
| - |
|
60 |
|
| - |
|
61 |
/* test:
|
| - |
|
62 |
SELECT c.nom_ret_nn, c.nom_ret, bLAST.num_nom, bLAST.nom_sci, bLAST.auteur, c.famille, bLAST.famille, c.nt, bLAST.num_taxonomique
|
| - |
|
63 |
FROM cel_obs c, tb_eflore.bdtfx_v1_01 b, tb_eflore.bdtfx_v1_01 bLAST
|
| - |
|
64 |
WHERE (
|
| - |
|
65 |
bLAST.num_nom = b.num_nom_retenu
|
| - |
|
66 |
AND nom_sel_nn IS NOT NULL AND nom_ret_nn IS NOT NULL AND nom_ret_nn != 0 AND nom_referentiel = 'bdtfx'
|
| - |
|
67 |
AND nom_ret_nn = bLAST.num_nom
|
| - |
|
68 |
AND (LOWER(c.famille) = LOWER(b.famille) OR c.famille IS NULL)
|
| - |
|
69 |
AND (c.famille != b.famille OR c.nom_ret != CONCAT(bLAST.nom_sci, ' ', bLAST.auteur) OR c.nt != b.num_taxonomique OR c.nom_ret_nn != bLAST.num_nom)
|
| - |
|
70 |
);
|
| - |
|
71 |
*/
|
| - |
|
72 |
|
| 26 |
--- l'update ---
|
73 |
-- l'update BDTFX avec nom_sel_nn seul
|
| 27 |
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTFX` b SET
|
74 |
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTFX` b, `BASESOURCE`.`TABLEBDTFX` b_nom_ret SET
|
| 28 |
c.nom_ret = CONCAT(b.nom_sci, ' ', b.auteur),
|
75 |
c.nom_ret = CONCAT(b_nom_ret.nom_sci, ' ', b_nom_ret.auteur),
|
| 29 |
c.nom_ret_nn = b.num_nom,
|
76 |
c.nom_ret_nn = b.num_nom,
|
| - |
|
77 |
c.nt = b.num_taxonomique,
|
| 30 |
c.nt = b.num_taxonomique,
|
78 |
c.famille = b.famille
|
| 31 |
c.famille = b.famille
|
79 |
WHERE (
|
| 32 |
WHERE (
|
80 |
b_nom_ret.num_nom = b.num_nom_retenu
|
| 33 |
nom_sel_nn IS NOT NULL
|
81 |
AND nom_sel_nn IS NOT NULL
|
| 34 |
AND nom_referentiel = 'bdtfx'
|
82 |
AND nom_referentiel = 'bdtfx'
|
| 35 |
AND nom_sel_nn = num_nom
|
83 |
AND nom_sel_nn = b.num_nom
|
| 36 |
AND LOWER(c.famille) = LOWER(b.famille)
|
- |
|
| 37 |
AND SUBSTRING_INDEX(c.nom_sel, ' ', 1) = SUBSTRING_INDEX(b.nom_sci, ' ', 1)
|
84 |
AND (LOWER(c.famille) = LOWER(b.famille) OR c.famille IS NULL)
|
| Line -... |
Line 85... |
| - |
|
85 |
AND SUBSTRING_INDEX(c.nom_sel, ' ', 1) = SUBSTRING_INDEX(b.nom_sci, ' ', 1)
|
| - |
|
86 |
);
|
| - |
|
87 |
-- 251 avec indirection num_nom_retenu
|
| - |
|
88 |
|
| - |
|
89 |
|
| - |
|
90 |
-- l'update BDTXA avec nom_sel_nn et nom_ret_nn corrects --
|
| - |
|
91 |
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTXA` a SET
|
| - |
|
92 |
c.nom_ret = CONCAT(a.nom_sci, ' ', a.auteur),
|
| - |
|
93 |
c.nt = a.num_tax,
|
| - |
|
94 |
c.famille = a.famille
|
| - |
|
95 |
WHERE (
|
| - |
|
96 |
nom_sel_nn IS NOT NULL AND nom_ret_nn IS NOT NULL AND nom_ret_nn != 0
|
| - |
|
97 |
AND nom_referentiel = 'bdtxa'
|
| - |
|
98 |
AND nom_ret_nn = num_nom
|
| - |
|
99 |
AND (LOWER(c.famille) = LOWER(a.famille) OR c.famille IS NULL)
|
| 38 |
);
|
100 |
);
|
| 39 |
-- 31739 sans les restrictions sur famille et SUBSTRING_INDEX()
|
101 |
-- 1
|
| 40 |
-- 31524 avec les restrictions sur famille et SUBSTRING_INDEX()
|
102 |
|
| 41 |
|
103 |
/*TODO
|
| 42 |
|
104 |
-- l'update BDTXA avec nom_sel_nn seul
|
| 43 |
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTXA` a SET
|
105 |
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEBDTXA` a SET
|
| 44 |
c.nom_ret = CONCAT(a.nom_sci, ' ', a.auteur),
|
106 |
c.nom_ret = CONCAT(a.nom_sci, ' ', a.auteur),
|
| 45 |
c.nom_ret_nn = a.num_nom,
|
107 |
c.nom_ret_nn = a.num_nom,
|
| 46 |
c.nt = a.num_tax,
|
108 |
c.nt = a.num_tax,
|
| 47 |
c.famille = a.famille
|
109 |
c.famille = a.famille
|
| 48 |
WHERE (
|
110 |
WHERE (
|
| 49 |
nom_sel_nn IS NOT NULL
|
111 |
nom_sel_nn IS NOT NULL
|
| 50 |
AND nom_referentiel = 'bdtxa'
|
112 |
AND nom_referentiel = 'bdtxa'
|
| 51 |
AND nom_sel_nn = num_nom
|
113 |
AND nom_sel_nn = num_nom
|
| - |
|
114 |
AND (LOWER(c.famille) = LOWER(a.famille) OR c.famille IS NULL)
|
| - |
|
115 |
AND SUBSTRING_INDEX(c.nom_sel, ' ', 1) = SUBSTRING_INDEX(a.nom_sci, ' ', 1)
|
| Line -... |
Line 116... |
| - |
|
116 |
);
|
| - |
|
117 |
-- 49 sans les restrictions sur famille et SUBSTRING_INDEX()
|
| - |
|
118 |
-- 47 avec les restrictions sur famille et SUBSTRING_INDEX()
|
| - |
|
119 |
*/
|
| - |
|
120 |
|
| - |
|
121 |
|
| - |
|
122 |
-- l'update ISFAN avec nom_sel_nn et nom_ret_nn corrects --
|
| - |
|
123 |
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEISFAN` i SET
|
| - |
|
124 |
c.nom_ret = CONCAT(i.nom_sci, ' ', i.auteur),
|
| - |
|
125 |
c.nt = i.num_taxonomique,
|
| - |
|
126 |
c.famille = i.famille
|
| - |
|
127 |
WHERE (
|
| - |
|
128 |
nom_sel_nn IS NOT NULL AND nom_ret_nn IS NOT NULL AND nom_ret_nn != 0
|
| - |
|
129 |
AND nom_referentiel = 'isfan'
|
| - |
|
130 |
AND nom_ret_nn = num_nom
|
| 52 |
AND LOWER(c.famille) = LOWER(a.famille)
|
131 |
AND (LOWER(c.famille) = LOWER(i.famille) OR c.famille IS NULL)
|
| 53 |
AND SUBSTRING_INDEX(c.nom_sel, ' ', 1) = SUBSTRING_INDEX(a.nom_sci, ' ', 1)
|
132 |
);
|
| 54 |
);
|
133 |
-- 2
|
| 55 |
-- 49 sans les restrictions sur famille et SUBSTRING_INDEX()
|
134 |
|
| 56 |
-- 47 avec les restrictions sur famille et SUBSTRING_INDEX()
|
135 |
/*TODO
|
| 57 |
|
136 |
-- l'update ISFAN avec nom_sel_nn seul
|
| 58 |
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEISFAN` i SET
|
137 |
UPDATE `BASEEDIT`.`cel_obs` c, `BASESOURCE`.`TABLEISFAN` i SET
|
| 59 |
c.nom_ret = CONCAT(i.nom_sci, ' ', i.auteur),
|
138 |
c.nom_ret = CONCAT(i.nom_sci, ' ', i.auteur),
|
| 60 |
c.nom_ret_nn = i.num_nom,
|
139 |
c.nom_ret_nn = i.num_nom,
|
| - |
|
140 |
c.nt = i.num_taxonomique,
|
| 61 |
c.nt = i.num_taxonomique,
|
141 |
c.famille = i.famille
|
| 62 |
c.famille = i.famille
|
142 |
WHERE (
|
| Line 63... |
Line 143... |
| 63 |
WHERE (
|
143 |
nom_sel_nn IS NOT NULL
|
| 64 |
nom_sel_nn IS NOT NULL
|
144 |
AND nom_referentiel = 'isfan'
|
| 65 |
AND nom_referentiel = 'isfan'
|
145 |
AND nom_sel_nn = num_nom
|
| 66 |
AND nom_sel_nn = num_nom
|
146 |
AND (LOWER(c.famille) = LOWER(i.famille) OR c.famille IS NULL)
|