(PHP 8 >= 8.4.0)
Pdo\Sqlite::createCollation — Registra una función de usuario de ordenación para su uso en las sentencias SQL
Este método es similar a Pdo\Sqlite::createFunction() salvo que registra funciones que se utilizan para ordenar strings.
name
callback
-1
, 0
, o 1
si el primer string se ordena antes, es idéntico o después
del segundo string respectivamente.
Una función interna que se comporta de esta manera es strcmp().
Esta función debe ser definida como sigue:
Ejemplo #1 Ejemplo de Pdo\Sqlite::createCollation()
<?php
$db = new Pdo\Sqlite('sqlite::memory:');
$db->exec("CREATE TABLE test (col1 string)");
$db->exec("INSERT INTO test VALUES ('a1')");
$db->exec("INSERT INTO test VALUES ('a10')");
$db->exec("INSERT INTO test VALUES ('a2')");
$db->sqliteCreateCollation('NATURAL_CMP', 'strnatcmp');
foreach ($db->query("SELECT col1 FROM test ORDER BY col1") as $row) {
echo $row['col1'] . "\n";
}
echo "\n";
foreach ($db->query("SELECT col1 FROM test ORDER BY col1 COLLATE NATURAL_CMP") as $row) {
echo $row['col1'] . "\n";
}
?>
El resultado del ejemplo sería:
a1 a10 a2 a1 a2 a10