鍍金池/ 問答/數(shù)據(jù)庫/ 查詢數(shù)據(jù)庫字段問題

查詢數(shù)據(jù)庫字段問題

  • 比如我要在后端查詢一個(gè)表test,表中有一個(gè)id自增,一個(gè)唯一的字段A,還有一個(gè)是插入時(shí)間insert_time,一個(gè)是類型,我要查詢的話是不是根據(jù)哪個(gè)唯一的字段就可以了(SELECT FROM test WHERE A="xx"),不必使用(SELECT FROM test WHERE id="xx" AND A="xx" AND insert_time="xx")。謝謝
回答
編輯回答
喜歡你

確保字段唯一當(dāng)然可以不用添加額外條件,添加AND條件的目的就是為了精確得到最終結(jié)果

2018年3月16日 10:40
編輯回答
悶騷型

通常情況下是的. 你通過 A 就可以確定唯一的條數(shù)據(jù)了, 其他條件沒有用了.

不過你把所有條件都加上的話可以防偽, 如果有人知道 A, 偽造了 id 和 insert_time, 那么肯定是不存在一條數(shù)據(jù)同時(shí)滿足 id, A, insert_time 這三個(gè)條件的. 這時(shí)候單獨(dú)查 A 會返回結(jié)果, 同時(shí)查則沒有數(shù)據(jù).

舉個(gè)場景例子:
身份證號是唯一的, 盡管你可以僅憑身份證號查詢到個(gè)人信息, 但一般實(shí)名認(rèn)真時(shí)都會要求同時(shí)提供身份號和名字兩條信息來確保信息匹配. 此時(shí)就需要明確的使用兩個(gè)條件來確定數(shù)據(jù).

select name, city, address from identities where id = 'x' and name = 'x';
2018年3月13日 17:10