与每个查询匹配的数据库字段值

时间:2014-06-02 18:52:22

标签: python web2py

我想将记录插入带有字段的sqlite数据库中,以便为该字段指定值的每个查询都不会取消记录的资格。

Make Model  Engine Parameter
Ford *      *          1
Ford Taurus *          2
Ford Escape *          3

所以查询=(database.table.Make == Ford')& (database.table.Model =='Taurus')将返回前两个记录

编辑:感谢woot,我决定使用以下内容:(database.table.Make.belongs('Ford',''))& (database.table.Model.belongs('Taurus',''))这是web2py中IN运算符的语法

1 个答案:

答案 0 :(得分:0)

你正在寻找这样的东西吗?如果您有很多行,它将因OR而无法正常运行。

SELECT *
FROM Cars
WHERE ( Cars.Make = 'Ford' OR Cars.Make = '*' )
AND   ( Cars.Model = 'Taurus' OR Cars.Model = '*' )

Here is a SQL Fiddle example

如果您打算使用NULL,则可以替换它并将OR条件替换为OR Cars.Make IS NULL等。

或者说它可能不那么冗长:

SELECT *
FROM Cars
WHERE Cars.Make IN ('Ford','*')
AND   Cars.Model IN ('Taurus','*')

但是在这种情况下您将无法使用NULL并且必须使用*令牌。

SQL Fiddle