SQlite concat 选择语句

Posted

技术标签:

【中文标题】SQlite concat 选择语句【英文标题】:SQlite concat select statement 【发布时间】:2013-07-13 10:15:03 【问题描述】:

我想知道是否可以在 SQlite 中连接和添加空格。这就是我的意思:

SELECT NAME || SURNAME AS USER_NAME FROM USERS

但是然后在查询中添加一些东西让结果显示为:

Name Surname

而不是

NameSurname

这样的事情在 SQlite 中是否可行?

【问题讨论】:

【参考方案1】:

使用 Laravel 时的 php hack。它通过让 SQLite 回调 PHP 来添加 concat() 功能。例如,您将其添加到您的 PhpUnit 脚本中。

第二行获取\PDO句柄,如果你不使用Laravel,用你获取句柄的方式替换它。

        /** @var \Illuminate\Database\Connection $connection */
        $connection = DB::connection();
        $dbHandle = $connection->getPdo();

        // Add mysql concat() support to SQLite
        if ('sqlite' === $dbHandle->getAttribute(\PDO::ATTR_DRIVER_NAME)) 
            $dbHandle->sqliteCreateFunction(
                'concat',
                function (...$input) 
                    return implode('', $input);
                
            );
        

PHP 中的其他 SQLite 库也有类似的 sqliteCreateFunction()

https://www.php.net/manual/en/function.sqlite-create-function.php https://www.php.net/manual/en/pdo.sqlitecreatefunction.php https://www.php.net/manual/en/sqlite3.createfunction.php

【讨论】:

【参考方案2】:

连接空格:

SELECT NAME || ' ' || SURNAME AS USER_NAME FROM USERS

【讨论】:

以上是关于SQlite concat 选择语句的主要内容,如果未能解决你的问题,请参考以下文章

Sqlite group_concat 排序

获取 SQLite 中 GROUP_CONCAT 的所有 id

Python / Sqlite3:使用 GROUP_CONCAT 左连接

SQLite:group_concat 似乎只拉第一行?

group_concat sqlite 和 order by

在 SQLite 中,多个列的排序方式是不是与 group_concat 相同?