機能する 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データベースの構造が異なるためでしょうか?
助けてくれてありがとう!