1.2k Aufrufe
Gefragt in Datenbanken von noahsraven Einsteiger_in (37 Punkte)
Hi,

Ich beziehe mich hier auf den Forumsbeitrag:
https://supportnet.de/fresh/2006/3/id1300119.asp
den ich nicht  wieder ausgrabe  möchte da dieser anscheinend schon
von 2006 stammt.

Dort wird die Lösung:

"select concat(vname, nname) as name from tabelle"

angeboten.

Die bei mir:

SELECT CONCAT(street, '  ', nr) as Strasse FROM win_player ORDER
BY ID

lautet.

Die tatsächlich auch funktioniert ABER dessen Ergebnis nur temporär
im PHPMyAdmin angezeigt wird anstatt das das Resultat in der schon
vorhandenen, leeren Spalte Strasse permanent gespeichert wird.

Kann mir jemand helfen?

Danke im voraus

Noah's Raven

18 Antworten

0 Punkte
Beantwortet von computerschrat Profi (32.2k Punkte)
Hallo Noah,

mit dem Select markierst du nur die Daten. PHPMyAdmin zeigt dir dann zwar den selektierten Wert an, macht aber nicht mehr damit. Du musst nach dem Select die Daten noch lesen und an der gewünschten Stelle abspeichern.

Gruß
computerschrat
0 Punkte
Beantwortet von noahsraven Einsteiger_in (37 Punkte)
Hi computerschrat,

meine MySQL-Shell-Kenntnisse beschränken sich derzeit auf Anlegen,
Import/Export, Rechtevergabe, beseitigen von Umlautproblemen etc.
Ich habe noch nie einzelne Spalten ausgelesen/zurückgeschrieben o.ä.
Kannst du vielleicht etwas genauer werden.
Vielleicht mit einem Beispiel oder so?

Danke

Noah's Raven
0 Punkte
Beantwortet von
0 Punkte
Beantwortet von noahsraven Einsteiger_in (37 Punkte)
hi  paul_1,

Sorry aber das was du da gepostet hast sieht sehr nach MSSQL/Access
aus.

Ich wüsste nicht wie mir das bei MySQL weiterhilft


Grüße Noah's Raven
0 Punkte
Beantwortet von
Hallo nochmal,

in SQL würde das dann so aussehen:

SELECT Tabelle1.Text1, Tabelle1.Text2, Tabelle1.Text3, Tabelle1.Text4, IIf([Text1]="" And [Text3]="" And [Text2]="" And [Text4]="","",[Text1]+"."+" " & [Text2]+"."+"" & [Text3]+"."+"" & [Text4]) AS Zusammenführen, IIf([Text1]="" And [Text3]="","",[Text1]+"."+" " & [Text3]) AS Ausdr1, IIf([Text1]="" And [Text3]="" And [Text2]="" And [Text4]="","",[Text1]+"."+" " & [Text2]+"."+"" & [Text3]+"."+"" & [Text4]) AS Ausdr2
FROM Tabelle1;

Gruß
Paul1
0 Punkte
Beantwortet von
Hallo,

stimmt, es ist auch Access-SQL, wie das auf MySQL umzuändern wäre, kann ich Dir leider nicht sagen.

Gruß
Paul1
0 Punkte
Beantwortet von noahsraven Einsteiger_in (37 Punkte)
hi paul_1,

jetzt wo ich es mir genauer durchlese steige ich da auch so einiger maßen
durch denke ich.

Ich werde es die Tage dann mal an einer Kopie-Kopie testen
(geheiligt sei das Backup)
und dann posten ob es geklappt hat
0 Punkte
Beantwortet von noahsraven Einsteiger_in (37 Punkte)
Hi,
also doch noch MSSQL
dann vergiss was ich zuletzt geschrieben habe

Gruß Noah's Raven
0 Punkte
Beantwortet von
nochmal,

der Code aus AW5 beinhaltet die gesamte Abfrage mit den Sonderwünschen des Fragestellers, für das Zusammenführen von nur 4Textfeldern sieht der eingeschränkte Code folgendermaßen aus:

SELECT Tabelle1.Text1, Tabelle1.Text2, Tabelle1.Text3, Tabelle1.Text4, IIf([Text1]="" And [Text3]="" And [Text2]="" And [Text4]="","",[Text1]+"."+" " & [Text2]+"."+"" & [Text3]+"."+"" & [Text4]) AS Zusammenführen
FROM Tabelle1;

die Formel im Feld "Zusammenführen" lautet:
Zusammenführen: Wenn([Text1]="" Und [Text3]="" Und [Text2]="" Und [Text4]="";"";[Text1]+"."+" " & [Text2]+"."+"" & [Text3]+"."+"" & [Text4])

Zusammenführen heißt das ungebundene Feld mit der Formel, die Textfelder wären auf Deine Namen umzutaufen

diese Info nur der ordnunghalber, vielleicht hilft's doch

Gruß
Paul1
0 Punkte
Beantwortet von computerschrat Profi (32.2k Punkte)
Hallo Noah,

du kannst die selektierten Werte zunächst in eine Variable übernehmen:

[code]$result = mysql_query('SELECT CONCAT(street, ' ', nr) as Strasse FROM win_player ORDER
BY ID');[/code]

Anschließend schreibst du den Inhalt von Result in die gewünschte Zelle der Datenbank
[code]$Abfrage = "INSERT INTO TABELLENNAME (SPALTENNAME) values ('$result')";
$ergebnis = mysql_query( $Abfrage, $DATENBANKVERBINDUNG);[/code]

TBELLENNAME und SPALTENNAME musst du noch durch die für deine Datenbank zutreffenden Bezeichnungen ersetzen.
DATENBANKVERBINDUNG ist die Verbindung, unter der du dich per mysql_connect mit der Datenbank verbunden hast

Ich habe es jetzt nicht tatsächlich getestet, insbesondere das CONCAT, aber so sollte es funktionieren.

Gruß
computerschrat
...