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

Lau*_*nid 2 perl dbix-class

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

SELECT * FROM MyTable WHERE column > TIMESTAMP
Run Code Online (Sandbox Code Playgroud)

我对Perl非常陌生,DBIx::Class所以我真的只知道如何在列等于值的情况下进行基本选择.如何使用其他比较器进行此操作?

Bor*_*din 5

DBIx::Class用于SQL::Abstract指定其WHERE子句,因此该模块的文档值得阅读.

你会习惯这样的事情

$schema->resultset('MyTable')->search({column => 42});
Run Code Online (Sandbox Code Playgroud)

查找列中具有特定值的记录.要使用特定的非等式运算符,您将使用包含运算符和值的匿名哈希,而不仅仅是一个裸值.像这样

$schema->resultset('MyTable')->search({column => { '>' => 42}});
Run Code Online (Sandbox Code Playgroud)

并且使用特定的SQL表达式而不是绑定值,您只需传递引用,就像这样

$schema->resultset('MyTable')->search({timestamp => { '>' => \'TIMESTAMP'}});
Run Code Online (Sandbox Code Playgroud)