有一个有效的 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 数据库有不同的结构?
谢谢您的帮助!