SQL :: Maker如何向字段添加功能

时间:2019-09-06 16:07:34

标签: sql perl

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`

2 个答案:

答案 0 :(得分:1)

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

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

及以后

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

这给出了:

SELECT ABS(`field`) AS VAT
FROM test

答案 1 :(得分:1)

为了获得逐字代码,我们需要引用字段名称:

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

输出:

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