Mailinglisten-Archive |
Hallo,
ich habe eine Tabelle mit Adressdaten. Ein Feld (folge) ist dafür
zuständig, die Adressen in einer bestimmten Reihenfolge auszugeben.
Wenn ein Benutzer eine neue Adresse eingibt, kann er die Position der
Adresse mit folge bestimmen. Ich möchte nun vermeiden, dass in der
Folgenzählung "Löcher" entstehen (1,2,3,6,7,8). Dafür habe ich mir ein
Statement ausgedacht, dass leider nicht funktioniert. Vielleicht kann
mir jemand das richtig rücken:
String sql = "INSERT INTO adressen (owner, ort, str, tel, selected,
aktiv, folge) VALUES ('" + return_owner + "', '" + this_ort + "', '" +
this_str + "', '" + this_tel + "', 0, 1, IF(MAX(folge)<" +
Integer.parseInt(this_folge) + ",'" + this_folge + "',MAX(folge)))";
Die entscheidende Stelle ist wohl " IF(MAX(folge)<" +
Integer.parseInt(this_folge) + ",'" + this_folge + "',MAX(folge))".
Nehme ich statt dessen ",'" + this_folge + "'" funktioniert das INSERT,
aber natürlich nicht die Reihenfolgenbegrenzung.
Vielleicht gibt es ja auch eine andere Lösung. Es geht darum, dass der
Wert für folge in keinem Fall höher als der Maximalwert von folge + 1
ist. Wenn ich einen Wert für folge angebe, der innerhalb des
Wertebereiches liegt, funktioniert mit der vereinfachten Version alles.
Die Änderung der schon vorhandenen Zählung habe ich in einer weiteren
Abfrage geregelt.
Danke für Eure Hilfe
Benedikt
--
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive