Thread SQL::Abstract::Problem (1 answers)
Opened by Froschpopo at 2008-07-05 09:41

Froschpopo
 2008-07-05 09:41
#111872 #111872
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Hallo Perlcommunity!

Ich möchte folgendes Statement erzeugen:
Code: (dl )
SELECT * FROM users WHERE datum > FUNKTION AND datum = ANDERE_FUNKTION()


hierzu möchte ich gerne SQL::Abstract verwenden:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/perl

use strict;
use warnings;
use SQL::Abstract;

my $sql = new SQL::Abstract;

my ($stmt, @bind) = $sql->select('users', '*', {
                -and => [
                        datum => {'>'   => 'FUNKTION()' },
                        datum => {'='   => 'ANDERE_FUNKTION()' }
                ]
        }
);

print $stmt, "\n";
print @bind,"\n";


Ergebnis:
Das Problem allerdings ist, dass die Funktionen gequotet und deshalb von mySQL nicht als Funktion annerkannt werden:
SELECT * FROM users WHERE datum > ? AND datum = ?

mySQL bekommt also fälschlicherweise:
SELECT * FROM users WHERE datum > 'FUNKTION' AND datum = 'ANDERE_FUNKTION()'

View full thread SQL::Abstract::Problem