Pdo\Sqlite::createCollation
(PHP 8 >= 8.4.0)
Pdo\Sqlite::createCollation — Registers a user-defined function for use as a collating function in SQL statements
説明
This method is similar to Pdo\Sqlite::createFunction() except that it registers functions that are used to collate strings.
パラメータ
name
- Name of the SQL collating function to be created or redefined.
callback
-
Callback function that defines the behaviour of a collation.
It must accept two strings and return
-1
,0
, or1
if the first string sorts before, sorts identically, or sorts after the second string respectively. An internal function that behaves like this is strcmp().This function need to be defined as:
例
例1 Pdo\Sqlite::createCollation() example
<?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";
}
?>
上の例の出力は以下となります。
a1 a10 a2 a1 a2 a10
参考
- Pdo\Sqlite::createFunction() - Registers a user-defined function for use in SQL statements
- Pdo\Sqlite::createAggregate() - Registers an aggregating user-defined function for use in SQL statements
- sqlite_create_function()
- sqlite_create_aggregate()
+add a note
User Contributed Notes
There are no user contributed notes for this page.
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google