有一个工作的SQL语句:为什么我的查询返回列中的结果而不是行?
my $q_it = $dbh->prepare("SELECT customdata.Field_ID,
customdata.Record_ID,
customdata.StringValue
FROM customdata
WHERE customdata.Field_ID='10012' && (StringValue LIKE '1%' OR StringValue LIKE '2%' OR StringValue LIKE '9%');
");
我写了一个非常简单的Perl脚本为我的客户在他们的服务器/数据库上运行。我不能直接测试,但我通过我的代码,以DBA:
$q_it->execute();
open (MYFILE, '>>data.txt');
while (my @row=$q_it->fetchrow_array)
{
print MYFILE $row[0].$row[1].$row[2];
}
close (MYFILE);
$ q_it只是一个普通的SQL Select语句。我会假设data.txt将包含许多记录(行)。然而,出人意料的是,它返回的结果在一列,但许多行,如:
100012
100012
...
100012
315941
315667
...
315633
2011-06
2011-06
...
2011-06
有只是不正确。 “100012”,“31”值和日期字符串的行。理想情况下,它应该是
100012 315941 2011-06
100012 315667 2011-06
100012 315633 2011-06
难道是我的东西在我的Perl做错了,或者这是因为他们的MySQL数据库具有不同的结构?
感谢您的帮助!
你可以显示SQL,也可能是所涉及的表的定义? – choroba
调试行清除 –
SQL添加到顶部 – Kevin