Registra una función de usuario de ordenación para su uso en las sentencias SQL

# Pdo\Sqlite::createCollation

(PHP 8 >= 8.4.0)

Pdo\Sqlite::createCollation — Registra una función de usuario de ordenación para su uso en las sentencias SQL

### Descripción

public function Pdo\Sqlite::createCollation(string `$name`, callable `$callback`): bool

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 strings 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:

  function 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 #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 ejemplo anterior mostrará:

    a1
    a10
    a2

    a1
    a2
    a10

### Ver también

- Pdo\Sqlite::createFunction() - Registra una función de usuario para su uso en las sentencias SQL
- Pdo\Sqlite::createAggregate() - Registra una función de agregación definida por el usuario para su uso en instrucciones SQL
- sqlite_create_function()
- sqlite_create_aggregate()

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open