如何在 SQLite 中使用部分 var 查询变量 python

How query variables with part of var in SQLite python

我应该用其中的一部分查询 SQLite 中的一些变量,如下面的代码 我需要获取此列中以 5070 开头的所有数字,我使用 ?*

  Number = 5070
  point = 5
  point_s =25
  result1 = cur.execute("""SELECT * FROM C1 WHERE 
                  point = ?
                  AND point_s = ?
                  AND trackNumber GLOB '5070*' 
                  AND observed LIKE 'A%'
                  order by rowid""", (probeType, probe))

通过这种方式从以 5070 开头的列中获取所有内容,但是当我使用 ?* 作为 var face 时出现错误

  result1 = cur.execute("""SELECT * FROM C1 WHERE 
                  point = ?
                  AND point_s = ?
                  AND trackNumber GLOB ?* 
                  AND observed LIKE 'A%'
                  order by rowid""", (probeType, probe, TrackNumber))

但是当我使用这个时,会出现一个错误 "sqlite3.OperationalError: near "AND": syntax error" 有什么办法可以解决这个问题吗?

+我使用 LIKE 而不是 GLOB 仍然没有用,而且我使用 % 并面临同样的错误。

从 SQL 中删除星号并将其附加到参数:

result1 = cur.execute("""SELECT * FROM C1 WHERE 
                  point = ?
                  AND point_s = ?
                  AND trackNumber GLOB ? 
                  AND observed LIKE 'A%'
                  order by rowid""", (probeType, probe, str(TrackNumber) + "*"))

如果 TrackNumber 已经是一个字符串,则它周围的 str(...) 是不必要的。