Select on several {name,value} pairs
I've found answer around Key/Value pairs terms, and the capacity involved is the inner-join:

SELECT DISTINCT
   Prospects.id,
   Prospects.prenom,
   Prospects.nom,
   Prospects.date,
   Prospects.departement
FROM
    Prospects
    INNER JOIN Pairs AS p1 ON Prospects.id = p1.id
    INNER JOIN Pairs AS p2 ON Prospects.id = p2.id
    INNER JOIN Pairs AS p3 ON Prospects.id = p3.id
    INNER JOIN Pairs AS p4 ON Prospects.id = p4.id
    INNER JOIN Pairs AS p5 ON Prospects.id = p5.id
    INNER JOIN Pairs AS p6 ON Prospects.id = p6.id
WHERE TRUE
AND (( p1.name like 'name%'    ) AND ( p1.value LIKE '%XXX%')) 
AND (( p2.name like 'forname%' ) AND ( p2.value LIKE '%CAMILLE%')) 
AND (( p3.name = 'codePostal'  ) AND ( p3.value = 'XXXXX')) 
AND (( p4.name = 'email'       ) AND ( p4.value LIKE '%XXXX%' )) 
AND (( p5.name like 'tel_%'    ) AND ( p5.value LIKE '%XXXXXX%')) 
AND (( p6.name = 'projet'      ) AND ( p6.value LIKE '%gociat%' ))
AND ( etape IN (-1,3,8 ))


The lines INNER JOIN...id and AND (( p... )) are generated by analysis of the request dynamically made by the GUI. The keyword TRUE is added to make all AND... lines identical, the first isn't different from the others.