在 FTS5 MATCH 子句中,用作过滤器的列名以冒号结尾声明,如:
... WHERE ftstable MATCH 'colname: keyword'
(根据https://sqlite.org/fts5.html#fts5_column_filters)
当我尝试将“关键字”声明为绑定值时,例如:
$sql = "SELECT * FROM ftstable WHERE ftstable MATCH 'colname: :keyword'";
$stmt = $pdo->prepare($sql);
$stmt->execute(array(':keyword' => 'keyword'));
我收到以下错误:
SQLSTATE[HY000]: General error: 1 unrecognized token: ":"
因为列名后面的冒号。
我使用替代语法(?占位符、bindValue() 等)得到了同样的错误。
有谁知道这里的解决方法?还是我错过了一些明显的东西?非常感谢。