Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment vérifier (ou même définir) le classement dans le fichier mdb (accès ms) ?

J'ai compris cela. J'ai utilisé la classe Collator pour un tri correct.

Pour votre information, cela ressemble à ceci (c'est le tri de ArrayList):

public class AccessSorter
{ 
final static String letters = "< a, A < b, B < c, C < d, D < e, E < f, F < g, G < h, H < i, I < j, J < k, K < l, L < m, M < n, N < o, O < p, P < q, Q < r, R < s, S < t, T < u, U < v, V < w, W < x, X < y, Y < z, Z";
final static String digits = "< 0 < 1 < 2 < 3 < 4 < 5 < 6 < 7 < 8 < 9";
final static String special = "< '.' < '_'";
private RuleBasedCollator accessCollator;


AccessSorter()
{
    try
    {
        accessCollator = new RuleBasedCollator(special + digits + letters);
    }
    catch (ParseException e)
    {
        e.printStackTrace();
    }
}


SomeComparator getSomeComparator()
{
    return new SomeComparator();
}

class SomeComparator implements Comparator<String[]>
{
    @Override
    public int compare(String[] s1, String[] s2)
    {
       return accessCollator.compare(s1[1], s2[1]);
    }
}

}

exemple d'utilisation :

Collections.sort(someCollectionOfStringArray, new AccessSorter().getSomeComparator()

Et maintenant, vous n'avez plus à vous soucier des classements d'accès ou de mySQL. Vous définissez vous-même les règles. Bien sûr, il faut un certain temps pour trier un tel tableau.
N'oubliez pas que si vous devez trier de grands tableaux plus d'une fois, envisagez d'utiliser getCollatorKey() pour augmenter l'efficacité.
N'oubliez pas également si vous devez ajouter à les points-virgules, les points, les guillemets de l'assembleur les mettent entre ' '.
J'espère que cela vous aidera d'une manière ou d'une autre.Cordialement.