Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQLite中,多个列的订购方式是否与组_concat相同?_Sqlite_Group Concat - Fatal编程技术网

在SQLite中,多个列的订购方式是否与组_concat相同?

在SQLite中,多个列的订购方式是否与组_concat相同?,sqlite,group-concat,Sqlite,Group Concat,我有一张这样的桌子: title id name manager.....1......bob manager.....2......tim manager.....3.....suzy worker.....4.....john 我正在做一个查询:按标题选择标题、组名称(id)、组名称(name) 我得到的结果是: manager......1,2,3......bob,tim,suzy <-- id order and name order match wo

我有一张这样的桌子:

title      id     name
manager.....1......bob
manager.....2......tim
manager.....3.....suzy
 worker.....4.....john
我正在做一个查询:
按标题选择标题、组名称(id)、组名称(name)

我得到的结果是:

manager......1,2,3......bob,tim,suzy   <-- id order and name order match
 worker..........4..............john
经理……1,2,3……鲍勃、蒂姆、苏西这个词“任意”的意思是“任意”

无论如何,
group_concat()
将按照读取实际行的顺序累积值。因此,如果您关心返回的值,则应在进行聚合之前对原始数据进行排序:

SELECT title, group_concat(id), group_concat(name)
FROM (SELECT title, id, name
      FROM ...
      ORDER BY title, id  -- or whatever order you want
     )
GROUP BY title;

理论上,SQLite的未来版本可能通过从索引或类似的内容中读取值来优化单个
group\u concat()
调用。但因为这确实会改变行为,所以不太可能。在任何情况下,同一SQLite版本的行为都不会改变。

感谢您的回答。为了澄清,我根本不关心具体的顺序,我只关心
group\u concat(id)
的顺序与
group\u concat(name)
的顺序相同。在您的示例中,子查询是否仅适用于
group\u concat(name)
,而不适用于
group\u concat(id)
?是否保证
id
的行顺序与
name
的行顺序相同?可能存在重复的
SELECT title, group_concat(id), group_concat(name)
FROM (SELECT title, id, name
      FROM ...
      ORDER BY title, id  -- or whatever order you want
     )
GROUP BY title;