mysql中判斷記錄是否存在方法比較
更新時間:2011年07月20日 20:50:09 作者:
把數(shù)據(jù)寫入到數(shù)據(jù)庫的時,常常會碰到先要檢測要插入的記錄是否存在,然后決定是否要寫入。
我這里總結(jié)了判斷記錄是否存在的常用方法:
sql語句:select count(*) from tablename;
然后讀取count(*)的值判斷記錄是否存在。對于這種方法性能上有些浪費,我們只是想判斷記錄記錄是否存在,沒有必要全部都查出來。
以下這個方法是我推薦的。
sql語句:select 1 from tablename where col = col limit 1;
然后讀取語句執(zhí)行所影響的行數(shù)。
當然這里limit 1很重要。這要mysql找到一條記錄后就不會在往下找了。這里執(zhí)行所影響的行數(shù)不是0就是1,性能提高了不少。
如果你用的是PDO,可以用rowCount(),很容易就都到執(zhí)行所影響的行數(shù)。
這里還有人可能會去讀取sql語句查詢到的記錄,然后判斷記錄是否存在,從而判斷記錄是否存在。這個方法雖然可行,但對于我們的要求來說,還是有些浪費,我們不需要查詢到的記錄,所有性能上會有損失。這里不推薦。
sql語句:select count(*) from tablename;
然后讀取count(*)的值判斷記錄是否存在。對于這種方法性能上有些浪費,我們只是想判斷記錄記錄是否存在,沒有必要全部都查出來。
以下這個方法是我推薦的。
sql語句:select 1 from tablename where col = col limit 1;
然后讀取語句執(zhí)行所影響的行數(shù)。
當然這里limit 1很重要。這要mysql找到一條記錄后就不會在往下找了。這里執(zhí)行所影響的行數(shù)不是0就是1,性能提高了不少。
如果你用的是PDO,可以用rowCount(),很容易就都到執(zhí)行所影響的行數(shù)。
這里還有人可能會去讀取sql語句查詢到的記錄,然后判斷記錄是否存在,從而判斷記錄是否存在。這個方法雖然可行,但對于我們的要求來說,還是有些浪費,我們不需要查詢到的記錄,所有性能上會有損失。這里不推薦。
相關(guān)文章
MySQL數(shù)學(xué)函數(shù)簡明總結(jié)
這篇文章主要介紹了MySQL數(shù)學(xué)函數(shù)簡明總結(jié),本文總結(jié)了大多數(shù)常用的MySQL數(shù)學(xué)函數(shù),并給出了使用實例,需要的朋友可以參考下2014-09-09MySQL中between...and的使用對索引的影響說明
這篇文章主要介紹了MySQL中between...and的使用對索引的影響說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07MySQL 數(shù)據(jù)庫如何解決高并發(fā)問題
這篇文章主要介紹了MySQL 如何處理高并發(fā),幫助大家更好的優(yōu)化MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下2020-09-09mysql正確刪除數(shù)據(jù)的方法(drop,delete,truncate)
這篇文章主要給大家介紹了關(guān)于mysql正確刪除數(shù)據(jù)的相關(guān)資料,DELETE語句是MySQL中最常用的刪除數(shù)據(jù)的方式之一,但也有幾種其他方法來實現(xiàn),需要的朋友可以參考下2023-10-10mysql判斷當前時間是否在開始與結(jié)束時間之間且開始與結(jié)束時間允許為空
這篇文章主要介紹了mysql判斷當前時間是否在開始與結(jié)束時間之間且開始與結(jié)束時間允許為空,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09