如果我有一個名爲USER的表,並且我有3列user_name
,user_password
和user_surname
,其中user_name
和user_password
設置爲主鍵。當用戶登錄到程序中時,他們需要輸入姓名和密碼。SQL:這是否可能用於成對比較
現在我需要驗證這種組合,所以我需要知道,如果我可以像下面成對比較:
SELECT *
FROM user
WHERE (user_name, user_password) = ('&name', '&password');
我知道,你可以使用像上面成對比較一個IN,但不知道你是否可以使用=。問題是用戶需要輸入兩個值(名稱,密碼),然後需要在表格中進行檢查。
請我需要建議
什麼數據庫?對元組比較的支持各不相同。 – pilcrow
對不起,我必須問爲什麼是user_name和密碼主鍵的一部分? user_name應該足夠了;如果不是,那麼後面會遇到一些邏輯問題:例如:Joe使用pwd 1234創建user1,並且擁有大量他喜歡存儲在數據庫中的數據。 Jane出現並創建了帶有密碼1234的user1,並獲得了重複的密鑰修復。 Jane然後使用pasword 1234與user1一起登錄並開始下載Joes的所有數據......非常安全。 – xQbert
問題是,如果我只使用名稱作爲主鍵,那麼發生重點違規的可能性就會更大,因爲可能有兩個同名的人呢?我還擔心這一點,因爲我試圖尋找像手機號碼或身份證號碼那樣對每個人都是獨一無二的價值,但是一些用於該計劃的用戶可能不具備這兩者中的任何一個。 – Japster