2014-12-12 6 views
0

У меня есть этот запрос в Perl:Почему это синтаксическая ошибка SQL?

my $pkg="%"; 
my $sql = "SELECT pid, CAST(pid as UNSIGNED) AS l FROM xmld ORDER BY l WHERE pkg LIKE ?"; 
my $files_ref = $dbh->selectcol_arrayref($sql, undef, $pkg); 

Он падает с:

DBD :: MySQL :: дб selectcol_arrayref не удалось: У вас ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом с «WHERE упак LIKE„%“» в строке 1 в ...

Я смотрел на это заявление в течение нескольких часов, попробовал различные вещи, но не повезло. Где эта дополнительная одинарная цитата, и откуда я могу ее избавиться?

+3

'порядок by' идет после' where' пункта. –

ответ

6

order by идет после where:

SELECT pid, CAST(pid as UNSIGNED) AS l 
FROM xmld 
WHERE pkg LIKE ? 
ORDER BY l; 
Смежные вопросы