![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
ファイルデータ内容を SQL条件へ代入する方法を教えてください。
例)ファイル(1)
あいう
かき
さしす
あかさたな
…
これを SQLのWhere区に 条件設定したい。
SELECT XXX FROM VVV where(ZZZ LIKE 'あいう' OR ZZZZ LIKE 'かき' OR …);
という風にファイルの行があるだけ すべてLIKE条件にいれられて、一度に計算できるようにしたい。
Perl(またはShell)プログラムで ファイル読込、SQLの実行をして、結果を取得する方法をおしえてください。
プログラムは詳しくないので、詳細に書き方を教えていただけると幸いです。
よろしくお願いいたします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
use DBI;
# DB Name
my $db_name = 'sqlite_test.db';
unlink $db_name;
my @user_infos = (
{ id => 1, name => 'Alice' },
{ id => 2, name => 'Bob' },
{ id => 3, name => 'Carol' },
{ id => 4, name => 'David' },
);
print '--- Connect DB', "\n";
my $dbh = DBI->connect(
'dbi:SQLite:dbname=' . $db_name,
'', '',
{ AutoCommit => 0,
RaiseError => 1
}
) || die "$db_name : $!";
my $sql;
my $table = 'user_info';
print '--- Create Table', "\n";
$sql = 'CREATE TABLE ' . $table . '(id integer primary key, name)';
$dbh->do($sql) or die $dbh->errstr;
$dbh->commit or die $dbh->errstr;
my $sth;
print '--- Insert Record', "\n";
$sth = $dbh->prepare( 'INSERT INTO ' . $table . '(id, name) VALUES (?, ?)' )
|| die $dbh->errstr;
for my $info_ref (@user_infos) {
$sth->bind_param( 1, $info_ref->{id} ) or die $sth->errstr;
$sth->bind_param( 2, $info_ref->{name} ) or die $sth->errstr;
$sth->execute or die $dbh->errstr;
$dbh->commit or die $dbh->errstr;
}
print '--- Select Record', "\n";
$sql = "SELECT * FROM $table WHERE name LIKE ? OR name LIKE ?";
$sth = $dbh->prepare($sql) || die $sth->errstr;
$sth->bind_param( 1, '%Bob%' ) or die $sth->errstr;
$sth->bind_param( 2, '%Carol%' ) or die $sth->errstr;
print '--- use fetch (fetchrow_arrayref)', "\n";
$sth->execute or die $sth->errstr;
while ( my $ref = $sth->fetch() ) {
print "@$ref\n";
}
if ( $sth->err ) {
die $sth->strerr;
}
$dbh->commit or die $dbh->errstr;
print '--- end of procedure', "\n";
$sth->finish or die $sth->errstr;
undef $sth; # fail safe
$dbh->disconnect or die $dbh->errstr;
unlink $db_name or die "$db_name : $!";
# result
# $ perl -w foo.pl
# --- Connect DB
# --- Create Table
# --- Insert Record
# --- Select Record
# --- use fetch (fetchrow_arrayref)
# 2 Bob
# 3 Carol
# --- end of procedure
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- Access(アクセス) Access VBAで条件を追加する(書き込む)場所 2 2022/03/23 12:05
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- その他(プログラミング・Web制作) フォルダ内の特定 拡張子のファイルを一括実行するBat ファイルについて 4 2022/04/17 09:51
- Excel(エクセル) Excel同士のデータの突合 3 2023/08/07 16:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで提出とは?
-
Perlの質問:行と列を入れ替え...
-
perlについて
-
openした後、closeしないでプロ...
-
Perl 特定のフォルダ以外削除
-
perl LWPでURLにアクセスした時...
-
perlをバージョンアップしたら...
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlのrequireの動き方について...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
fetchrow_arrayとfetchrow_hash...
-
perlでdb(mysql)に接続
-
perlのdbi-connect処理のエラー
-
PerlソースでのSQLのエラーにつ...
-
PerlでMySQLのテーブル一覧取得
-
ActivePerl を使用して MySQL に
-
MySQLのトランザクションについて
-
テキストデータをpostgreSQLの...
-
CGIからデータベースにデータを...
-
データベースにアクセス出来ま...
-
perlでのDBI接続
-
CGI(perl)データベースを教えて...
-
DBIでメールアドレスにマッチさ...
-
データベースへのデータの受け渡し
-
Oracleのデータベースに接続で...
-
ファイルデータ内容を SQL条件...
-
例外処理のフローチャートの記...
-
Excel VBAでリンク切れをチェッ...
-
ユーザー定義関数に#NAME?が返...
-
VBAで別モジュールへの変数の受...
おすすめ情報