SQLite3::createCollation
(PHP 5 >= 5.3.11, PHP 7, PHP 8)
SQLite3::createCollation — Registra uma função PHP para uso como uma função de comparação de SQL
Descrição
Registra uma função PHP ou função definida pelo usuário para uso como uma função de comparação dentro de instruções SQL.
Parâmetros
name
-
Nome da função de comparação de SQL a ser criada ou redefinida
callback
-
O nome de uma função PHP ou função definida pelo usuário para aplicar como um callback, definindo o comportamento da comparação. Ela deve aceitar dois valores e retornar como strcmp() faz, ou seja, deve retornar -1, 1 ou 0 se a primeira string ordena antes, ordena depois ou é igual à segunda.
Esta função precisa ser definida como:
Exemplos
Example #1 Exemplo de SQLite3::createCollation()
Registre a função PHP strnatcmp() como uma sequência de comparação no banco de dados SQLite3.
<?php
$db = new SQLite3(":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->createCollation('NATURAL_CMP', 'strnatcmp');
$defaultSort = $db->query("SELECT col1 FROM test ORDER BY col1");
$naturalSort = $db->query("SELECT col1 FROM test ORDER BY col1 COLLATE NATURAL_CMP");
echo "default:\n";
while ($row = $defaultSort->fetchArray()){
echo $row['col1'], "\n";
}
echo "\nnatural:\n";
while ($row = $naturalSort->fetchArray()){
echo $row['col1'], "\n";
}
$db->close();
?>
O exemplo acima produzirá:
default: a1 a10 a2 natural: a1 a2 a10
Veja Também
- A documentação de comparação SQLite: » http://sqlite.org/datatype3.html#collation