0

したがって、FTS [34]テーブルdataと通常のテーブルがあり、これらは。infoでバインドされているとしinfo.ID = data.rowidます。masterこの結合を表すビューがあり、全体的な情報をクエリするために使用します。CREATE TABLEステートメントは次のとおりです。

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;

次に、テーブルからセル全体を選択する代わりに、テーブルの各列で実行されるdataSQLiteスニペット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
4

1 に答える 1

1

dataパラメータ値とパラメータ値の間のカンマが'<b>'ありません。

于 2012-10-26T18:18:26.150 に答える