I'm generating a sql statement like this:
sth = $mysql_dbh->prepare(
"select sum(column) as columnSum from table where value in ( ? ) and row_date between cast( ? as date) and cast( ? as date) ");
sth->execute( $ValueIDs ,$week_start_date,$week_end_date);
$ValueIDs is a series of unquoted values:
01161,01162,01262,01147,01034,01125,01125,01017,01125,01278,01204,01164
When observed at the mysql server, the sql appears as follows:
select sum(column) as columnSum where value in ( '01161,01162,01262,01147,01034,01125,01125,01017,01125,01278,01204,01164' ) and row_date between cast( '2016-03-29' as date) and
cast( '2016-04-05' as date)
resulting in no data being returned.
When the sql is manually entered as follows:
select sum(column) as columnSum where value in ( 01161,01162,01262,01147,01034,01125,01125,01017,01125,01278,01204,01164 ) and row_date between cast( '2016-03-29' as date) and
cast( '2016-04-05' as date)
The correct values are returned.
How can I suppress the quoting for the IN clause?
sth = $mysql_dbh->prepare(
"select sum(column) as columnSum from table where value in ( ? ) and row_date between cast( ? as date) and cast( ? as date) ");
sth->execute( $ValueIDs ,$week_start_date,$week_end_date);
$ValueIDs is a series of unquoted values:
01161,01162,01262,01147,01034,01125,01125,01017,01125,01278,01204,01164
When observed at the mysql server, the sql appears as follows:
select sum(column) as columnSum where value in ( '01161,01162,01262,01147,01034,01125,01125,01017,01125,01278,01204,01164' ) and row_date between cast( '2016-03-29' as date) and
cast( '2016-04-05' as date)
resulting in no data being returned.
When the sql is manually entered as follows:
select sum(column) as columnSum where value in ( 01161,01162,01262,01147,01034,01125,01125,01017,01125,01278,01204,01164 ) and row_date between cast( '2016-03-29' as date) and
cast( '2016-04-05' as date)
The correct values are returned.
How can I suppress the quoting for the IN clause?