检测mySQL/PHP数据库中的数字是否唯一
我有一个mySQL表,其列如下:检测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
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;