为什么这是一个SQL语法错误?

jac*_*ter 0 mysql perl

我在Perl中有这个查询:

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); 
Run Code Online (Sandbox Code Playgroud)

它崩溃了:

DBD :: mysql :: db selectcol_arrayref失败:您的SQL语法中有错误; 检查与您的MySQL服务器版本对应的手册,以便在第1行的'WHERE pkg LIKE'%'附近使用正确的语法...

我一直在看这个陈述几个小时,尝试了各种各样的事情,但没有运气.那个额外的单引号来自哪里?如何摆脱它?

Gor*_*off 6

order by追求where:

SELECT pid, CAST(pid as UNSIGNED) AS l
FROM xmld
WHERE pkg LIKE ?
ORDER BY l;
Run Code Online (Sandbox Code Playgroud)