Afficher/masquer le menu
Liens Ecyseo
  • Tags cloud
  • Daily
  • Pictures wall
  • Search
  • Display options
    • Links per page :
    • 20 links
    • 50 links
    • 100 links
  • RSS Feed
  • Login

J'ai besoin d'intimité. Non pas parce que mes actions sont douteuses, mais parce que votre jugement et vos intentions le sont.

5169 links 

page 1 / 1

Liste des liens

Ordonner de façon naturelle avec sqlite et php
2023-11-29 18:41 - permalink -

Si l'on souhaite ordonner de façon naturelle une colonne avec sqlite (c'est à dire en prenant en compte les accents et les nombres), il y a deux petits hacks à appliquer.
Le premier consiste à transformer la valeur en décimal, ce qui donne le code :

CAST(colonne AS DECIMAL)

Le deuxième est de créer une fonction sqlite via pdo, qui va prendre en compte la langue utilisée (ici, le français et ses accents). Cette fonction est à écrire en amont de la requête :

$pdo->sqliteCreateFunction('locale',
            function ($data, $locale = 'root')
            {
                static $collators = array();

                if (isset($collators[$locale]) !== true)
                {
                    $collators[$locale] = new \Collator($locale);
                }

                return $collators[$locale]->getSortKey($data);
            }
        );

Ainsi, la recherche dans sqlite va donner :

SELECT * FROM matable WHERE id!=? ORDER BY CAST(macolonne AS DECIMAL), locale(macolonne, 'fr-FR')

On peut également utiliser une autre langue pour le même résultat.

astuce fonction php snippet SQLite
- https://bookmarks.ecyseo.net/?6x5yIw
page 1 / 1


Tags


  • shaarli
  • wikipedia

Tags cloud

Shaarli - The personal, minimalist, super-fast, database free, bookmarking service by the Shaarli community - Help/documentation
Affiches "loi aviva" créées par Geoffrey Dorne le 13 Mai, 2020 - Mastodon 1 - Mastodon 2