(PHP 8 >= 8.4.0)
Pdo\Sqlite::createCollation — Registra uma função definida pelo usuário para uso como função de agrupamento em instruções SQL
Este método é semelhante a Pdo\Sqlite::createFunction() exceto que ele registra funções que são usadas para agrupar strings.
name
callback
-1
, 0
ou 1
se a primeira string for classificada antes, ordenada de forma idêntica ou ordenada depois
da segunda string, respectivamente.
Uma função interna que se comporta assim é strcmp().
Esta função precisa ser definida como:
Exemplo #1 Exemplo 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";
}
?>
O exemplo acima produzirá:
a1 a10 a2 a1 a2 a10