1
我想在SQLite中只有那些有多個要連接的行的記錄中執行組concat concat。看起來你可以預先這樣做(在使用group_concat之前,先使用一個組來計算記錄,然後再刪除這些單例行);之後(完成group_concat然後刪除無連接的行);甚至可能在?group_concat只有當多於一組時
我的問題:SQLite完成此操作的最快方法是什麼?
我已經制定了一個例子,使用Python APSW「後」,但我不喜歡它:
#set up a table with data
c.execute("create table foo(x,y)")
def getvals():
a = [1, 1, 2, 3, 3]
b = ['a','b','c','d','e']
for i in range(5):
yield a[i],b[i]
c.executemany("insert into foo values(?,?)",getvals())
c.execute('''create table fooc(a,b);
insert into fooc(a,b) select x, group_concat(y) from foo group by x''')
c.execute('select * from fooc')
c.fetchall() ## reports three records
c.execute("select * from fooc where b like '%,%'")
c.fetchall() ## reports two records .. what I want
似乎瘋了(而緩慢?)使用像這種需要。
非常感謝。這是一個明顯的......但我還沒有看到一個。感謝您花時間回答。 – Tim