在設計登入介面時,常見需求是讓使用者在同一個帳號輸入框中,無論輸入手機號碼或電子信箱都能登入。後端 SQL 查詢只需以 OR 條件同時比對兩個欄位即可。
SELECT * FROM users
WHERE (phone = ? OR email = ?)
AND password = ?;
參數綁定時,將使用者輸入的帳號字串同時綁定給前兩個佔位符,密碼綁定給第三個。
PreparedStatement 防止 SQL 注入。phone 和 email 欄位分別建立唯一索引,查詢效能極佳。若系統設計將手機與信箱統一存放在同一欄位 account,查詢更簡單:
SELECT * FROM users WHERE account = ? AND password = ?;
此時需在註冊階段保證手機與信箱不重複,並添加唯一索引。
掌握這類靈活的帳號查詢邏輯,能顯著提升使用者登入體驗。