如何使用SQL::Abstract我生成這個查詢WHERE
子句:如何使用SQL :: Abstract生成SQL查詢?
SELECT COUNT(*)FROM表WHERE ID = 111 NOT FIND_IN_SET(類型, '1,2,3,4') AND狀態='正在等待';
什麼是包括像WHERE FIND_IN_SET(type, '1,2,3,4')
條件的正確方法?
如何使用SQL::Abstract我生成這個查詢WHERE
子句:如何使用SQL :: Abstract生成SQL查詢?
SELECT COUNT(*)FROM表WHERE ID = 111 NOT FIND_IN_SET(類型, '1,2,3,4') AND狀態='正在等待';
什麼是包括像WHERE FIND_IN_SET(type, '1,2,3,4')
條件的正確方法?
FIND_IN_SET不是標準SQL,所以SQL :: Abstract不支持它。但是,您可以將任何literal SQL放入SQL :: Abstract查詢中。我希望你的解決方案落在這條路上。
此代碼生成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);
見not_bool元運算符選項:
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 = ?))