mysql相關面試題(一)
1、主鍵自增,姓名字段重複。刪除重複的姓名數據,只留一條
-- Every derived table must have its own alias 子查詢要起別名
-- 思路:分組後只會顯示一條,然後根據這一條的id 去not in 刪除
DELETE FROM test WHERE id NOT IN (SELECT id FROM (SELECT * FROM test GROUP BY NAME) b);
2、主鍵自增,主鍵不連續,查出某個主鍵的下一條數據
-- searchId為要查詢的id -- 思路:先查詢出大於searchId的所有數據,取最小的,即為searchId的下一個id。 -- 根據這個id 查詢出該數據。 SELECT * FROM test WHERE id = (SELECT MIN(id) FROM test WHERE id > searchId);
由上得出,使用左連接,左表有幾條數據就會顯示幾條數據,與右表數據無關。右連接同理