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

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

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top