Pdo\Sqlite::createCollation
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
Run code <?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.