Könnt Ihr mir bitte kurz helfen?
Ich möchte das zweifache CONCAT’en der Felder (ID, Name…) verhindern.
SELECT CONCAT(
SHA2(CONCAT(`ID`, ":", `NAME`, ":", `Kennwort`, ":", `Spitzname`, ":", `ePost`, ":", `ZuletztAktiv`), 512),
SHA1(CONCAT(`ID`, ":", `NAME`, ":", `Kennwort`, ":", `Spitzname`, ":", `ePost`, ":", `ZuletztAktiv`))) AS `Löschkode` FROM `Benutzer` WHERE ID=?;
Versuche:
/* Problem: Fehlermeldung! */
-- SET @Felder: SELECT CONCAT(`ID`, ":", `NAME`, ":", `Kennwort`, ":", `Spitzname`, ":", `ePost`, ":", `ZuletztAktiv`) AS `Felder` FROM `Benutzer` WHERE ID=?;
/* Problem: 2 Ergebnisse! */
-- SELECT @Felder := CONCAT(`ID`, ":", `NAME`, ":", `Kennwort`, ":", `Spitzname`, ":", `ePost`, ":", `ZuletztAktiv`) FROM `Benutzer` WHERE ID=?;
-- SELECT CONCAT(SHA2(@Felder, 512), SHA1(@Felder)) AS `Löschkode`;
/* Problem: Felder werden als Ergebnis mit ausgegeben! */
SELECT @Felder:=CONCAT(`ID`, ":", `NAME`, ":", `Kennwort`, ":", `Spitzname`, ":", `ePost`, ":", `ZuletztAktiv`) AS `Felder`, CONCAT(SHA2(@Felder, 512), SHA1(@Felder)) AS `Löschkode` FROM `Benutzer` WHERE ID=?; /* 128 + 40 Zeichen */
SET @Felder = NULL;
Danke!