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

时间:2014-12-12 13:05:18

标签: 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); 

它崩溃了:

  

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

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

1 个答案:

答案 0 :(得分:6)

order by追踪where

SELECT pid, CAST(pid as UNSIGNED) AS l
FROM xmld
WHERE pkg LIKE ?
ORDER BY l;