This is the entire mysql statement that runs without error but pulls records back that it shouldn't.
It's long code, I apologize, there's like 12 columns in this table which makes it look messy.my $data = qq(SELECT engine, name1, name2, name3, name4, lable1, l +able2, lable3, lable4, settings1, settings2, settings3, settings4 FROM special_fields WHERE engin +e IN (".join(",",map($dbh->quote($_), @choices)).") AND settings1="public" OR settings2="public" OR settings +3="public" OR settings4="public"); my $sth = $dbh->prepare($data); $sth->execute() or die $dbh->errstr; my ($engine, $name1, $name2, $name3, $name4, $lable1, $lable2, $la +ble3, $lable4, $settings1, $settings2, $settings3, $settings4); $sth->bind_columns(\$engine, \$name1, \$name2, \$name3, \$name4, \ +$lable1, \$lable2, \$lable3, \$lable4, \$settings1, \$settings2, \$settings3, \$settin +gs4);
The thing really confusing me is the entire JOIN statement, it was code from a previous node on here.
All I'm trying to do is have a variable (@choices) with a few names (engines column) and pull back only the records found in the array. That's why the join() is there and that's why I'm completely lost.
When I wrap ( ) around AND ( ... or ... or ... ) I get 0 results back.
In reply to Re^4: in, ands, ors in query (qq)
by Anonymous Monk
in thread in, ands, ors in query
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |