Enregistre une fonction utilisateur de tri pour une utilisation dans les instructions SQL

# Pdo\Sqlite::createCollation

(PHP 8 >= 8.4.0)

Pdo\Sqlite::createCollation — Enregistre une fonction utilisateur de tri pour une utilisation dans les instructions SQL

### Description

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

Cette méthode est similaire à Pdo\Sqlite::createFunction() sauf qu'elle enregistre des fonctions qui sont utilisées pour trier des chaînes.

### Liste de paramètres

`name`
  Le nom de la fonction de tri SQL à créer ou redéfinir.
`callback`
  La fonction de rappel qui définit le comportement d'un tri. Elle doit accepter deux strings et retourner `-1`, `0`, ou `1` si la première chaîne est triée avant, identique, ou après la seconde chaîne respectivement. Une fonction interne qui se comporte de cette manière est strcmp().

  Cette fonction doit être définie comme suit :

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

### Valeurs de retour

Cette fonction retourne `true` en cas de succès ou `false` si une erreur survient.

### Exemples

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

L'exemple ci-dessus va afficher :

    a1
    a10
    a2

    a1
    a2
    a10

### Voir aussi

- Pdo\Sqlite::createFunction() - Enregistre une fonction utilisateur pour une utilisation dans les instructions SQL
- Pdo\Sqlite::createAggregate() - Enregistre une fonction utilisateur d'agrégation pour une utilisation dans les instructions SQL
- sqlite_create_function()
- sqlite_create_aggregate()

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