Về cơ bản tôi cần phải làm một cái gì đó như thế này .... đây chỉ là một ví dụ ... nhưng cú pháp của truy vấn đầu tiên không làm việc trong MySQLmysql lồng SELECT trong CẬP NHẬT của cùng một bảng
update people set prize = ''
where prize = 'Gold' and class = (select class from people where id = person_id);
update people set prize = 'Gold' where id = <id>;
Chỉ một người có thể có giải Vàng ở bất kỳ hạng nào. Tôi chỉ biết person_id của người nhận giải Vàng.
Tôi đang cố gắng xóa mọi người giành giải thưởng Vàng trước đó trong cùng một lớp với person_id trong truy vấn đầu tiên. Sau đó thiết lập người chiến thắng Vàng mới trong lần thứ hai.
Tôi tin rằng tôi cần phải sử dụng một số loại tham gia bên trong, nhưng tôi không chắc chắn 100% về điều này.
Điều gì sẽ càng thông minh hơn nếu tôi có thể thực hiện toàn bộ rất nhiều trong một truy vấn!
Mọi người có thể cho vay lời khuyên không?
Cảm ơn :)
này không làm tương tự như đăng trong câu hỏi. Bạn đang ghi đè mọi giải thưởng trong một lớp học với "Vàng" hoặc "Bạc" trong khi truy vấn trên chỉ xóa các giải thưởng "Vàng" và đặt giải thưởng mới. Ví dụ: nếu một trong những người có giá "Đồng" thì sao? – VVS
@David Hympohl: Tốt, bạn có thể làm điều đó bằng cách thêm "WHERE class = 'Gold" hoặc id = @lucky "vào cuối truy vấn. – Andomar
@David: truy vấn của @ op đặt giải thưởng thành '' cho mỗi người trong lớp. Tôi chỉ cần thay thế '' bằng 'Bạc' để dễ đọc – Quassnoi