mysql - 如何使用 DBD::mysql 和 Perl 检查数据库行是否存在?

标签 mysql perl dbi dbd

我正在使用 MySQL 数据库,在决定运行哪些查询之前需要检查是否已有一行。

我正在处理的表格是这样的:

player(playerid, nickname, data1, data2, data3)

其中“playerid”是一个自动递增的数字,“nickname”是唯一的。

我尝试了一些使用 COUNT、COALESCE、fetch->rows 等的查询,但一无所获。我已经看到了this question , 但无法解决任何问题。

最佳答案

能否请您发布带有 SELECT COUNT(*) 的特定查询,该查询不起作用,问题是什么?

查询应该以这个答案为模型:How do I know how many rows a Perl DBI query returns?

假设您的“行已经存在”定义是“具有给定昵称的玩家存在”,查询将是:

my $th = $dbh->prepare(qq{SELECT COUNT(1) FROM player WHERE nickname='$nickname'});
$th->execute();
if ($th->fetch()->[0]) {
    ....
} # Code stolen shamelessly from the link above

关于mysql - 如何使用 DBD::mysql 和 Perl 检查数据库行是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4178778/

相关文章:

mysql varchar innodb 页面大小限制 8100 字节

perl - 在 Perl 中使用 POSIX ceil() 出现意外结果

perl - DBI 和 DBD 有什么区别?

perl - 识别 Perl/DBI 代码中的内存问题

sql-server - 修剪数组(通过 DBI 填充)

php - 在 PHP 递归中查找从第 n 个子级到顶级的所有中间类别

javascript - 在警报确定时更新数据库中的数据

java - 如何将字符串转换为时间并将其插入MySQL

perl - 使用 sed 将文件读入行中间

windows - 使用 Win32::Registry 在 Linux 机器中出现问题