sql >> Database >  >> RDS >> Mysql

Hoe de sortering in het mdb-bestand (ms-toegang) controleren (of zelfs instellen)?

Ik heb dit bedacht. Ik heb de Collator-klasse gebruikt voor de juiste sortering.

Ter info, het ziet er zo uit (dit is het sorteren van 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]);
    }
}

}

voorbeeld van gebruik:

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

En nu hoeft u zich geen zorgen te maken over het verzamelen van toegang of mySQL. Regels stel je zelf op. Natuurlijk kost het wat tijd om zo'n array te sorteren.
Vergeet niet dat als je grote arrays meer dan één keer moet sorteren, overweeg dan om getCollatorKey() te gebruiken om de efficiëntie te verhogen.
Onthoud ook of je iets moet toevoegen aan verzamelpuntkomma's, punten, aanhalingstekens zet ze tussen ' '.
Ik hoop dat het je op de een of andere manier zal helpen. Met vriendelijke groet.




  1. Waarom meerdere JOIN's slecht zijn voor query's of de Optimizer niet in de weg staan

  2. Een tabel kopiëren van de ene mysql-database naar een andere mysql-database

  3. speciale tekens ophalen uit mysql-database, php

  4. Rails selecteren willekeurig record