2012-03-21 58 views
-1

唯一我有了这样的列MySQL表:检测一个数字是在MySQL/PHP数据库

ID 
----- 
0352 
5432 
4382 
3520 
30593 
3992 
295 

我要检测一个特定数量的存在与否。

注意:该表格不仅仅是ID列。

例如

$num = 5432 
if($num IS IN ID) { 
// code 
} else { 
// code 
} 
+0

你是如何得到要检查的数字? – hjpotter92 2012-03-21 03:48:49

+0

'如果数字存在与否'和'检测数字是否唯一'是不同的任务 – 2012-03-21 03:55:32

+0

k感谢您的智慧... – Talon 2012-03-21 16:22:26

回答

2
$result = mysql_query("SELECT ID FROM table WHERE ID = '5432'"); 
$num_rows = mysql_num_rows($result); 

if ($num_rows > 0) { 
    // number is in the table 
} else { 
    // number is not in the table 
} 
+0

非常感谢 – Talon 2012-03-21 04:39:24

4

使用数查询

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 
} 
+0

+1使用PDO! – Anthony 2012-03-21 04:00:03

0
$result = mysqli_query("SELECT id FROM table WHERE id = {$num}"); 
if (mysql_num_rows($result)) { 
    //already exists 
} else { 
    //does not exist 
} 
0

好, 你总是可以执行一个查询到DB这样的:

SELECT COUNT(ID) AS cnt WHERE ID = [your id]

然后,早在PHP中,从$ row变量(例如ju)中获取查询结果后ST siply检查

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

1

菲尔的答案是当场就,如果你事先知道的ID。如果你想在事先都是独一无二的ID从表列表(假设这不是一个潜在的内存问题),您可以使用此查询:

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

这将返回出现一次所有ID在桌子里。

+1

+1好主意。我在这里做了进一步的例子 - http://sqlfiddle.com/#!2/99972/5 – Phil 2012-03-21 04:16:46

+0

不错。因为我们正在处理0和1,所以可以更简化它,检查你的例子。 – Anthony 2012-03-21 04:56:33

相关问题