2012-03-21 52 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

相關問題