首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQLite3::createCollation

(PHP 5 >= 5.3.11, PHP 7)

SQLite3::createCollat​​ion - 注册一个PHP函数用作SQL整理函数

描述

代码语言:javascript
复制
public bool SQLite3::createCollation ( string $name , callable $callback )

注册一个PHP函数或用户定义的函数,用作SQL语句中的整理函数。

参数

name

要创建或重新定义的SQL整理函数的名称

callback

用于定义排序行为的PHP函数或用户定义函数的名称。它应该接受两个字符串,并以strcmp()的形式返回,即,如果第一个字符串在之前排序,排序或等于第二个字符串,它应该返回-1,1或0。

返回值

成功时返回TRUE或失败时返回FALSE

示例

Example #1 SQLite3::createCollation() example

在SQLite3数据库中注册PHP函数strnatcmp()作为整理序列。

代码语言:javascript
复制
<?php

$db = new SQLite3(":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->createCollation('NATURAL_CMP', 'strnatcmp');

$defaultSort = $db->query("SELECT col1 FROM test ORDER BY col1");
$naturalSort = $db->query("SELECT col1 FROM test ORDER BY col1 COLLATE NATURAL_CMP");

echo "default:\n";
while ($row = $defaultSort->fetchArray()){
    echo $row['col1'], "\n";
}

echo "\nnatural:\n";
while ($row = $naturalSort->fetchArray()){
    echo $row['col1'], "\n";
}

$db->close();

?>

上面的例子将输出:

代码语言:javascript
复制
default:
a1
a10
a2

natural:
a1
a2
a10

另请参阅

← SQLite3::createAggregate

SQLite3::createFunction →

扫码关注腾讯云开发者

领取腾讯云代金券