判定數據庫表內是否存在數據


一、判定數據庫表內是否存在數據

1、count( * )

SELECT COUNT(*) FROM dbtest.`orders` a WHERE a.order_name='admin'

可以返回符合條件記錄的總數

例:

SELECT * FROM dbtest.`orders`;

SELECT COUNT(*) FROM dbtest.`orders` a WHERE a.order_name='admin'

SELECT COUNT(*) FROM dbtest.`orders` a WHERE a.order_name='admin1'

2、count(1)

可以返回符合條件記錄的總數

SELECT COUNT(1) FROM dbtest.`orders` a WHERE a.order_name='admin'

SELECT COUNT(1) FROM dbtest.`orders` a WHERE a.order_name='admin1'

3、select 1

select 1 from tablename where col = col limit 1;

然后讀取語句執行所影響的行數。

當然這里limit 1很重要。這要mysql找到一條記錄后就不會在往下找了。這里執行所影響的行數不是0就是1,性能提高了不少。

例:

SELECT 1 FROM dbtest.`orders` a WHERE a.order_name='admin';

SELECT 1 FROM dbtest.`orders` a WHERE a.order_name='admin1';

SELECT 1 FROM dbtest.`orders` a WHERE a.order_name='admin' LIMIT 1;

SELECT 1 FROM dbtest.`orders` a WHERE a.order_name='admin1' LIMIT 1;

4、select *

SELECT * FROM `feed` WHERE `uid` =1121293 limit 1

可以返回一條記錄的字段內容

5、exists

SELECT EXISTS(SELECT * FROM dbtest.`orders` a WHERE a.order_name='admin')

只能判斷是否存在記錄,子查詢中的SELECT *在執行時會被忽略掉。

SELECT EXISTS(SELECT * FROM dbtest.`orders` a WHERE a.order_name='admin1')

6、插入記錄時判定記錄是否存在

INSERT INTO test(id, name)
SELECT id, name FROM tset1
WHERE not exists (select * from test where tset.id = tset1.id);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM