9398 shaares
13 liens privés
13 liens privés
9 résultats
taggé
sqlite
DuckDB peut être une alternative à SQLite, intéressante car elle utilise tous les coeurs du CPU.
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), ocale(macolonne, 'fr-FR')`
Utiliser VS Code comme client sqlite :-)
Utiliser SQLite plutôt que le système de fichier ...