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()
+添加备注
用户贡献的备注
此页面尚无用户贡献的备注。
备份地址:http://www.lvesu.com/blog/php/pdo-sqlite.createcollation.php