2012-10-26 65 views
0

假设我有一个FTS [34]表data和一个常规表info,它们被info.ID = data.rowid绑定在一起。我有一个视图master表示这个连接,我用它来查询整体信息。 这里是CREATE TABLE声明:SQLite查看功能?

CREATE VIRTUAL TABLE data USING fts4(
    Name, 
    Keywords, 
    Aliases 
    Description); 

CREATE TABLE info (
    ID INTEGER PRIMARY KEY, 
    -- A bunch of other columns... 
    ); 

CREATE VIEW master AS SELECT 
    info.ID AS ID 
    data.Name AS Name, 
    data.Keywords AS Keywords, 
    data.Aliases AS Aliases, 
    data.Description AS Description, 
    -- A bunch of other columns... 
FROM info JOIN data ON info.ID = data.rowid; 

现在我想要做的就是创造另一种观点认为,由于对每列执行,而不是选择从data表整个小区,选择SQLite的snippet函数的结果在data表:

CREATE VIEW search AS SELECT 
    master.*, 
    snippet(data '<b>', '</b>', '...', 0) AS sn_Name, 
    snippet(data '<b>', '</b>', '...', 1) AS sn_Keywords, 
    snippet(data '<b>', '</b>', '...', 2) AS sn_Aliases, 
    snippet(data '<b>', '</b>', '...', 3) AS sn_Description 
FROM master JOIN data ON master.ID = data.rowid; 

然而,当我从内Python中执行该语句,我得到如下:

sqlite3.OperationalError: near "'<b>'": syntax error 

回答

1

缺少参数值data'<b>'之间的逗号。