in reply to How do Monks programatically construct SQL selects
I think you're making too much work for yourself, someone has already done it for you.
I highly recommend SQL:Abstract
This module can generate pretty complicated WHERE statements easily. For example, simple key=value pairs are taken to mean equality, and if you want to see if a field is within a set of values, you can use an arrayref. Let's say we wanted to SELECT some data based on your criteria:
use SQL::Abstract; my $sql = SQL::Abstract->new; my %where = ( name => 'smith', salary => {'>', 50000}, department => { 'not like', 'eng%' } ); my($stmt, @bind) = $sql->select($table, *, \%where, \@order);
This module also handles insert, update and delete, as well as ORing and ANDing your conditional clauses
--
|
|---|