Se fossi in te, preferirei confrontare i descrittori nel codice, piuttosto che in SQL. SQL non è pensato per quello. Vorrei fare quanto segue:-
1. Pre-load N descriptors from SQL onto memory.
2. Compare distances to query descriptor, descriptor by descriptor.
3. If distance<threshold, push to possiblematches.
4. When you reach N/2 descriptors, push the next N.
5. Compare all matches, choose the best one or the best D descriptors, as per your requirement.
Tuttavia, per questo, preferirei usare la classe FileStorage integrata di OpenCV che fornisce I/O su file XML e YAML; risolve il mal di testa dell'analisi manuale dei valori del descrittore.