我正在使用DBIx::Class
模块,我正在尝试执行以下查询:
SELECT * FROM MyTable WHERE column > TIMESTAMP
我是Perl的新手,尤其是DBIx::Class
所以我真的只知道如何在列等于值的情况下进行基本选择。我怎么能用其他比较器来做呢?
答案 0 :(得分:5)
DBIx::Class
使用SQL::Abstract
来指定其WHERE
子句,因此该模块的文档值得一读。
你会习惯像
这样的东西$schema->resultset('MyTable')->search({column => 42});
查找列中具有特定值的记录。要使用特定的非等式运算符,您将使用包含运算符和值的匿名哈希,而不仅仅是一个裸值。喜欢这个
$schema->resultset('MyTable')->search({column => { '>' => 42}});
并使用特定的SQL表达式而不是绑定值,您只需传递引用,如此
$schema->resultset('MyTable')->search({timestamp => { '>' => \'TIMESTAMP'}});