使用Perl的DBIx :: Class并在大于列的位置进行选择

时间:2014-07-30 14:36:44

标签: perl dbix-class

我正在使用DBIx::Class模块,我正在尝试执行以下查询:

SELECT * FROM MyTable WHERE column > TIMESTAMP

我是Perl的新手,尤其是DBIx::Class所以我真的只知道如何在列等于值的情况下进行基本选择。我怎么能用其他比较器来做呢?

1 个答案:

答案 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'}});