Registra uma função definida pelo usuário para uso como função de agrupamento em instruções SQL

# Pdo\Sqlite::createCollation

(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

### Descrição

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

Este método é semelhante a Pdo\Sqlite::createFunction() exceto que ele registra funções que são usadas para agrupar strings.

### Parâmetros

`name`
  Nome da função de agrupamento SQL a ser criada ou redefinida.
`callback`
  Função de retorno de chamada que define o comportamento de um agrupamento. Ele deve aceitar duas strings e retornar `-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:

  function collation(string `$string1`, string `$string2`): int

### Valor Retornado

Retorna `true` em caso de sucesso ou `false` em caso de falha.

### Exemplos

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

### Veja Também

- Pdo\Sqlite::createFunction() - Registra uma função definida pelo usuário para uso em instruções SQL
- Pdo\Sqlite::createAggregate() - Registra uma função de agregação definida pelo usuário para uso em instruções SQL
- sqlite_create_function()
- sqlite_create_aggregate()

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