我有一个mySQL数据库设置和一个“联系人”表,其中有多个字段用于不同的联系信息。这让我感到困惑,但由于某些原因,我想客户在添加到数据库时并不总是将其电子邮件信息放在“电子邮件”字段中。有没有一种快速简便的方法来在每个记录的每个字段中搜索“ @”符号?如果没有,有人可以帮我整理一下perl行或脚本,以在txt文件中仅保留带有'@'的字符串吗?我打算研究perl进行数据批量处理,但是我现在没有时间。谢谢!

-奥斯丁

最佳答案

当某列包含@时,这将遍历所有行并将结果保存在文件中

#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use DBI;

my $dbh = DBI->connect('dbi:mysql:db_name','user','pass')
  or die "Connection Error: $DBI::errstr\n";

my $sql = "select * from table";
my $sth = $dbh->prepare($sql);
$sth->execute or die "SQL Error: $DBI::errstr\n";

open my $fh, ">", "output.txt" or die $!;

while (my $r = $sth->fetchrow_hashref) {
  $r->{$_} =~ /@/ and print $fh "Found '@' in column $_ of row:", Dumper $r
    for keys %$r;
}

关于mysql - MySQL-在每个字段中搜索特定字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19038658/

10-09 20:22
查看更多