首页 > 解决方案 > SQL::Maker 如何向字段添加函数

问题描述

MWE:

#!/usr/bin/perl

use strict;
use warnings;
use SQL::Maker;

our $builder = SQL::Maker->new(
    driver => 'mysql',
);

my @fields = (
    ['ABS(field)'  => 'VAT'],
);

my ($sql, @bind) = $builder->select("test", \@fields);
print $sql;

输出:

SELECT `ABS(field)` AS `VAT`
FROM `test`

我怎样才能得到:

SELECT ABS(`field`) AS `VAT`
FROM `test`

?

标签: sqlperl

解决方案


以下内容可能有效,也可能无效,quote_char有时可以省略,但引入的风险由您自行评估:

our $builder = SQL::Maker->new(
    driver => 'MySQL',
    quote_char => '',
);

然后

my @fields = (
    ['ABS(`field`)'  => 'VAT'],
);

这给出了:

SELECT ABS(`field`) AS VAT
FROM test

推荐阅读