私はこのようなSQLを生成したい:このSQLはFey :: SQLを使用して生成できますか?
SELECT coalesce(max(a.a_index) + 1, 0) as a_index FROM table1 a
私は、 "+ 1" 以外のすべてを取得することができます。これをクエリに追加する方法はありますか?
use strict;
use Fey::Schema;
use Fey::Loader;
use DBI;
my $dbh = DBI->connect("DBI:mysql:....", "...", "...");
my $loader = Fey::Loader->new(dbh => $dbh);
my $s = $loader->make_schema();
my $q = Fey::SQL->new_select();
my $a_table = $s->table('table1')->alias('a');
my $a_index_col = $a_table->column('a_index');
my $max_a_index_func = Fey::Literal::Function->new('max', $a_index_col);
$max_a_index_func->set_alias_name('max_a_index');
my $c_a_index_func = Fey::Literal::Function->new('coalesce', $max_a_index_func, "0");
$c_a_index_func->set_alias_name('a_index');
$q->select($c_a_index_func);
$q->from($a_table);
print $q->sql($dbh);
print "\n";
出力
SELECT coalesce(max(`a`.`a_index`), 0) AS `a_index` FROM `table1` AS `a`