我想在mysql一個表中查詢某個id是否存在?請問下面兩種方法哪個效率更高?
方法一:
$sql="SELECT COUNT(*) FROM `table` WHERE id=10";$rst = mysql_query($sql);$row = mysql_fetch_row($rst);if($row[0]){ //通過$row[0]是否為0來判斷id=10是否存在}
方法二:
$sql="SELECT * FROM `table` WHERE id=10";$rst = mysql_query($sql);$arr = mysql_fetch_assoc($rst);if($arr){ //通過數組$arr是否存在來判斷id=10是否存在}
或者有沒有更高效的方法?
回複內容:
我想在mysql一個表中查詢某個id是否存在?請問下面兩種方法哪個效率更高?
方法一:
$sql="SELECT COUNT(*) FROM `table` WHERE id=10";$rst = mysql_query($sql);$row = mysql_fetch_row($rst);if($row[0]){ //通過$row[0]是否為0來判斷id=10是否存在}
方法二:
$sql="SELECT * FROM `table` WHERE id=10";$rst = mysql_query($sql);$arr = mysql_fetch_assoc($rst);if($arr){ //通過數組$arr是否存在來判斷id=10是否存在}
或者有沒有更高效的方法?
我覺得
select id from `table` where id=10 limit 1
效率更高一點吧,當命中一條後不再繼續
SELECT id FROM table
WHERE id=10
你的哪兩句,一個要做count運算,不個不做,你說哪個效率高
那還不如寫select 1 from table where id = 10 limit 1呢,其實這幾個我記得都差不多,
如果id做了索引的話,就不要去select停用字詞段,這樣查詢就只需走索引檔案就ok了
很久不用了
如果只是來查詢有沒有,不要select ,一般ID都是索引,select ID就行,SQL語句,如果資料多,select ID和select 效率差的還是挺多的,可以用蠕蟲複製自己產生幾百萬條資料比較下。
按我之前的印象,是COUNT的快
盡量不要在SQL中使用函數吧。。。