Pdo\Sqlite::createCollation
En esta página
Pdo\Sqlite::createCollation
Registra una función de usuario de ordenación para su uso en las sentencias SQL
Descripción#
public Pdo\Sqlite::createCollation(string $name, callable $callback): bool
```php
Este método es similar a Pdo\Sqlite::createFunction salvo que registra funciones que se utilizan para ordenar strings.
## Parámetros
`name`
El nombre de la función de ordenación SQL a crear o redefinir.
`callback`
La retrollamada que define el comportamiento de una ordenación. Debe aceptar dos `string`s y devolver `-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:
```php
collation(string $string1, string $string2): int
Valores devueltos#
Esta función retorna true en caso de éxito o false si ocurre un error.
Ejemplos#
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 ejemplo anterior mostrará:
a1
a10
a2
a1
a2
a10
Véase también#
Pdo\Sqlite::createFunction
Pdo\Sqlite::createAggregate
sqlite_create_function
sqlite_create_aggregate