Pdo\Sqlite::createCollation

Från Wiki.linux.se
Version från den 23 december 2024 kl. 06.49 av Admin (diskussion | bidrag) (→‎Exempel #1 Pdo\Sqlite::createCollation()-exempel)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

Pdo\Sqlite::createCollation

(PHP 8 >= 8.4.0)

Pdo\Sqlite::createCollation — Registrerar en användardefinierad funktion för användning som en kollationsfunktion i SQL-frågor

Beskrivning

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

Den här metoden liknar Pdo\Sqlite::createFunction förutom att den registrerar funktioner som används för att kollationera strängar.

Parametrar

name
Namnet på den SQL-kollationsfunktion som ska skapas eller omdefinieras.
callback
Callback-funktion som definierar hur kollationeringen ska bete sig. Den måste ta emot två strängar och returnera -1, 0 eller 1 om den första strängen ska sorteras före, sorteras likadant eller sorteras efter den andra strängen. En intern funktion som beter sig på detta sätt är strcmp().

Funktionen måste vara definierad så här:

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

Returvärden

Returnerar true vid framgång eller false vid misslyckande.

Exempel

Exempel #1 Pdo\Sqlite::createCollation()-exempel

<?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";
}
?>

Utdata:

a1
a10
a2

a1
a2
a10

Se även

  • Pdo\Sqlite::createFunction - Registrerar en användardefinierad funktion för användning i SQL-frågor
  • Pdo\Sqlite::createAggregate - Registrerar en aggregerande användardefinierad funktion för användning i SQL-frågor
  • sqlite_create_function()
  • sqlite_create_aggregate()

Sidslut

Orginalhemsidan på Engelska :https://www.php.net/manual/en/pdo-sqlite.createcollation.php
PHP Funktioner Funktionsreferens Databas-tillägg


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp Huddinge som har sponsrat Linux.se med webbhotell.