mysql 判斷記錄是否存在方法比較
更新時間:2011年08月09日 16:54:53 作者:
把數(shù)據(jù)寫入到數(shù)據(jù)庫的時,常常會碰到先要檢測要插入的記錄是否存在,然后決定是否要寫入。
我這里總結(jié)了判斷記錄是否存在的常用方法:
sql語句:select count(*) from tablename;
然后讀取count(*)的值判斷記錄是否存在。對于這種方法性能上有些浪費,我們只是想判斷記錄記錄是否存在,沒有必要全部都查出來。
以下這個方法是我推薦的。
sql語句:select 1 from tablename where col = col limit 1;
然后讀取語句執(zhí)行所影響的行數(shù)。
當(dāng)然這里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ù)。
當(dāng)然這里limit 1很重要。這要mysql找到一條記錄后就不會在往下找了。這里執(zhí)行所影響的行數(shù)不是0就是1,性能提高了不少。
如果你用的是PDO,可以用rowCount(),很容易就都到執(zhí)行所影響的行數(shù)。
這里還有人可能會去讀取sql語句查詢到的記錄,然后判斷記錄是否存在,從而判斷記錄是否存在。這個方法雖然可行,但對于我們的要求來說,還是有些浪費,我們不需要查詢到的記錄,所有性能上會有損失。這里不推薦。
您可能感興趣的文章:
相關(guān)文章
MYSQL 數(shù)據(jù)庫命名與設(shè)計規(guī)范
對于MYSQL 數(shù)據(jù)庫的命名與設(shè)計,需要一定的規(guī)范,所以我們要了解和快速的掌握mysql有很多的幫助。2008-12-12
mysql實現(xiàn)if語句判斷功能的6種使用形式小結(jié)
這篇文章主要給大家介紹了關(guān)于mysql實現(xiàn)if語句判斷功能的6種使用形式,MySQL的IF既可以作為表達式用,也可在存儲過程中作為流程控制語句使用,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2023-07-07
MySQL數(shù)據(jù)庫手冊DATABASE操作與編碼(小白入門篇)
這篇文章主要介紹了MySQL數(shù)據(jù)庫手冊DATABASE操作與編碼的小白入門篇,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05
實現(xiàn)MySQL數(shù)據(jù)庫鎖的兩種方式
今天我們就來聊一聊數(shù)據(jù)庫的鎖,實現(xiàn)數(shù)據(jù)庫鎖的兩種方式,一個是實現(xiàn)樂觀鎖的方式,一個是實現(xiàn)悲觀鎖的實現(xiàn)方式,文中的代碼示例介紹的非常詳細,需要的朋友可以參考下2023-06-06
MySQL數(shù)據(jù)庫存儲引擎的應(yīng)用
存儲引擎是MySQL將數(shù)據(jù)存儲在文件系統(tǒng)中的存儲方式,本文主要介紹了MySQL數(shù)據(jù)庫的存儲引擎的應(yīng)用,具有一定的參考價值,感興趣的可以了解一下2024-03-03

