检测mySQL/PHP数据库中的数字是否唯一

检测mySQL/PHP数据库中的数字是否唯一,php,mysql,Php,Mysql,我有一个mySQL表,其列如下: ID ----- 0352 5432 4382 3520 30593 3992 295 我想检测是否存在特定的数字 注意:此表不仅仅包含ID列 e、 g 使用计数查询 SELECT COUNT(1) FROM `table` WHERE `ID` = 5432; 然后你可以决定 0=不存在 1=唯一 >1=不唯一 PDO示例 $stmt = $pdo->prepare('SELECT COUNT(1) FROM `table` WHERE `ID

我有一个mySQL表,其列如下:

ID
-----
0352
5432
4382
3520
30593
3992
295
我想检测是否存在特定的数字

注意:此表不仅仅包含ID列

e、 g

使用计数查询

SELECT COUNT(1) FROM `table` WHERE `ID` = 5432;
然后你可以决定

  • 0=不存在
  • 1=唯一
  • >1=不唯一

PDO示例

$stmt = $pdo->prepare('SELECT COUNT(1) FROM `table` WHERE `ID` = ?');
$stmt->bindParam(1, $num);

$num = 5432;
$stmt->execute();
$count = $stmt->fetchColumn();

switch ($count) {
    case 0 :
        // does not exist
        break;
    case 1 :
        // exists and unique
        break;
    default :
        // exists, not unique
}
那么, 您始终可以像这样对数据库执行查询:

ID
-----
0352
5432
4382
3520
30593
3992
295
选择COUNT(ID)AS cnt,其中ID=[您的ID]

然后,回到php,在$row变量(例如)中获得查询结果后,只需siply检查


if($row['cnt']>1)

如果您事先知道ID,菲尔的答案是正确的。如果希望提前从表中获得所有唯一ID的列表(假设这不是潜在的内存问题),可以使用以下查询:

SELECT `ID`, COUNT(`ID`) AS `IS_UNIQUE` FROM `table` 
GROUP BY `ID` HAVING `IS_UNIQUE` = 1;

这将返回表中只出现一次的所有ID。

如何检查数字?
如果数字存在或不存在
检测数字是否唯一
是不同的任务+1个好主意。我在这里又做了一个例子——很好。因为我们处理的是0和1,所以可以进一步简化,请检查您的示例。
$result = mysqli_query("SELECT id FROM table WHERE id = {$num}");
if (mysql_num_rows($result)) {
    //already exists
} else {
    //does not exist
}
SELECT `ID`, COUNT(`ID`) AS `IS_UNIQUE` FROM `table` 
GROUP BY `ID` HAVING `IS_UNIQUE` = 1;