Bonjour,

J'ai un petit soucis avec une procédure :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
DELIMITER $$
 
DROP PROCEDURE IF EXISTS `probes_db`.`list_redund_targ_seq`$$
CREATE PROCEDURE `probes_db`.`list_redund_targ_seq` ()
BEGIN
select ts.idtarget_sequence, length(ts.sequence) as target_size, 
sr.c occurences, 
ts.sequence, 
concat_ws('|', t.target_id, t.target_type, t.target_genome_id, 
t.target_chrs_file_id, t.target_entrez_id, 
return_pos(t.target_body_pos1, t.target_body_pos2, t.target_juncb_pos1, 
t.target_juncb_pos2, 
t.target_juncb_pos3, t.target_juncb_pos4)) as target_name 
from target_sequence ts join target t
on ts.idtarget_sequence = t.target_sequence_idtarget_sequence 
join (select ts2.idtarget_sequence, count(t2.idtarget) c from target_sequence ts2
join target t2 on ts2.idtarget_sequence = t2.target_sequence_idtarget_sequence 
group by ts2.idtarget_sequence having c > 1 limit 10) sr 
on sr.idtarget_sequence = ts.idtarget_sequence order by ts.idtarget_sequence;
END$$
 
DELIMITER ;
Cette requête croise les données d'une table avec une autre requête sur la même table. La seconde requête JOIN(SELECT...) prend en compte un COUNT(), de cette manière le résultat du COUNT() peut être inclus dans chaque ligne de la première.

Mon problème: le concat_ws() renvoie une colonne de type BLOB (sans données).

Si j'enlève le JOIN (SELECT...) ça marche parfaitement, c'est cette seconde requête qui semble affecter le résultat de la fonction CONCAT_WS(). J'ajoute qu'un CONCAT() seul renvoie aussi un type BLOB dans ce cas de figure.

Auriez-vous une idée là-dessus ?

En vous remerciant,

C. Tobini