Schwein haben ist eine deutsche Redensart und bedeutet Glück haben.
Die Herkunft ist nicht mit Sicherheit geklärt.
Vermutlich geht die Redensart auf eine Sitte aus dem späten Mittelalter zurück: Bei Sportwettkämpfen, wie dem Augsburger Schießfest, wurde dem Verlierer als Trostpreis ein Schwein geschenkt. Wer das Schwein bekam, erhielt etwas, ohne es eigentlich verdient zu haben.
Sebastian Brant (1457–1521) schrieb in seinem 1494 veröffentlichten Narrenschiff:
Nach einer anderen Theorie stammt die Redensart aus dem Kartenspiel. Um das 16. Jahrhundert nannte man das Ass umgangssprachlich auch "Sau". Wer die höchste Karte (Sau) zog, hatte viel Glück. In Süddeutschland wird das Ass beim Binokel- oder Gaigelspiel auch heute noch "Sau" genannt.
Eine dritte Theorie erklärt die Redensart mit der Rettung eines Schweins: Die Halle des Rathauses Münden der von Überflutungen oft heimgesuchten Stadt Hann. Münden ist reich geschmückt mit Wandbildern zur Stadtgeschichte. Eines der Bilder (siehe Foto) zeigt Bürger der Stadt bei der Rettung eines Teils ihres Hab und Gut bei einer solchen Überschwemmung. Unter anderen Habseligkeiten ist dort ein Schwein auf dem Floß zu erkennen. Wer damals sein Schwein rettete, dem ging es noch relativ gut nach einer Katastrophe: Er hatte „Schwein gehabt“.
Eine weitere Theorie findet ihren Ursprung ebenfalls rund um das 16. Jahrhundert. Insbesondere in schwierigen Zeiten, in denen die einfache Bevölkerung am Hungertuch nagte, sprach man davon, Schwein gehabt zu haben und spielte damit auf gute alte Zeiten an, in denen noch zur Genüge Brot und Schinken (oder andere Lebensmittel) zur Verfügung standen.
Duden - Das Herkunftswörterbuch, Mannheim 1989; S.658