Mysql 如何使用SQL::Abstract生成SQL查询?
如何使用以下命令为该查询生成Mysql 如何使用SQL::Abstract生成SQL查询?,mysql,perl,sql-generation,Mysql,Perl,Sql Generation,如何使用以下命令为该查询生成WHERE子句: 从id所在的表中选择计数(*)= 111并且在_集合中找不到_(类型, “1,2,3,4”)和状态=“待定” 如何正确地包含条件,例如WHERE FIND_IN_SET(键入'1,2,3,4')?FIND_IN_SET不是标准的SQL,因此SQL::Abstract不支持它。但是,您可以将任何内容放入SQL::抽象查询中。我希望您的解决方案就是这样。此代码生成WHERE子句: my $sql = SQL::Abstract->new;
WHERE
子句:
从id所在的表中选择计数(*)=
111并且在_集合中找不到_(类型,
“1,2,3,4”)和状态=“待定”
如何正确地包含条件,例如
WHERE FIND_IN_SET(键入'1,2,3,4')
?FIND_IN_SET不是标准的SQL,因此SQL::Abstract不支持它。但是,您可以将任何内容放入SQL::抽象查询中。我希望您的解决方案就是这样。此代码生成WHERE
子句:
my $sql = SQL::Abstract->new;
my %where = (
id => 111,
-nest => \"NOT FIND_IN_SET(type, '1,2,3,4')",
status => 'pending',
);
my ($stmt, @bind) = $sql->where(\%where, \@order);
请参见一元运算符选项:
use SQL::Abstract;
my $sql = SQL::Abstract->new;
my $where = {
id => 111,
status => 'pending',
-not_bool => "FIND_IN_SET(type, '1,2,3,4')",
};
my ($query, @bind) = $sql->select(
'table',
'count(*)',
$where,
);
这就是$query
的外观:
SELECT count(*) FROM table WHERE ( ( (NOT FIND_IN_SET(type, '1,2,3,4'))
AND id = ? AND status = ? ) )
看看:DALMP
使用PHP的MySQL数据库抽象层
0%脂肪,非常容易使用。仅在需要时连接到数据库
我在SQL::Abstract中找不到任何关于-nest的文档。你怎么知道用这个?