CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
08.09.2010, 01:56:45
|
Anfänger
|
|
Registriert seit: Sep 2010
Alter: 58
Beiträge: 37
|
|
Abfrage mehrer Daten in eine Spalte schreiben.
Hallo zusammen,
ich lese mit folgender Abfrage einige Daten aus.
PHP-Code:
select Spalte1 from Tabelle1 where Spalte2 regexp 'mein wert nach dem ich suche'
Das ganze mache ich im mysqladmin. Möchte ich auch hier weitermachen.
Kann mir jemand sagen wie ich das Ergebnis danach in nur eine Spalte einer bestimmten Tabelle schreibe ?
Gruß
-sensemann-
|
08.09.2010, 07:39:43
|
Junior Member
|
|
Registriert seit: Aug 2010
Alter: 14
Beiträge: 395
|
|
AW: Abfrage mehrer Daten in eine Spalte schreiben.
So ganz klar ist mir die Frage nicht geworden, deshalb habe ich mal verschiedene Antworten ausprobiert. Die Frage ist eigentlich ob:
a) Mehrere Datensätze auf einmal geändert werden sollen ? (UPDATE)
b) Daten in eine leere Tabelle kopiert werden sollen (INSERT .. SELECT )
Code:
CREATE TABLE tabelle1 (
id INT NOT NULL,
spalte1 VARCHAR(50) NOT NULL,
spalte2 VARCHAR(50) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE tabelle2 (
id INT NOT NULL,
spalte1 VARCHAR(50) NOT NULL,
spalte2 VARCHAR(50),
PRIMARY KEY (id)
);
CREATE TABLE tabelle3 (
spalte2 VARCHAR(50)
);
INSERT INTO tabelle1 VALUES
( 1 , 'wert11', 'wert12' ),
( 2 , 'wert21', 'wert22' ),
( 3 , 'wert31', 'wert32' );
INSERT INTO tabelle2 VALUES
( 1 , 'wert11', NULL ),
( 2 , 'wert21', NULL ),
( 3 , 'wert31', NULL );
/* Single Row Update - eine Spalte eines vorhandenen Datensätzes wird geändert */
UPDATE tabelle2
SET spalte2 = ( SELECT spalte2 FROM tabelle1
WHERE spalte1 = 'wert21' )
WHERE spalte1 = 'wert21';
SELECT * FROM tabelle2;
+----+---------+---------+
| id | spalte1 | spalte2 |
+----+---------+---------+
| 1 | wert11 | NULL |
| 2 | wert21 | wert22 | <===
| 3 | wert31 | NULL |
+----+---------+---------+
3 rows in set (0.00 sec)
mysql>
/* Multi Row Insert - neue Datensätze werden eingefügt */
INSERT INTO tabelle3
SELECT spalte2 FROM tabelle1
WHERE spalte1 LIKE 'wert%';
SELECT * FROM tabelle3;
+---------+
| spalte2 |
+---------+
| wert12 |
| wert22 |
| wert32 |
+---------+
3 rows in set (0.00 sec)
mysql>
Vielleicht ist ja was passendes dabei.
Grüße
Thomas
|
08.09.2010, 12:06:53
|
Anfänger
|
|
Registriert seit: Sep 2010
Alter: 58
Beiträge: 37
|
|
AW: Abfrage mehrer Daten in eine Spalte schreiben.
Hallo,
vielen Dank für die Antworten. Ich hab mich aber falsch ausgedrückt.
Ich möchte alle Abfrage Ergebnisse in ein Feld einer Spalte setzen.
Nicht alle Ergebnisse untereinander in eine Spalte.
Gruß
-sensemann-
|
08.09.2010, 12:15:01
|
Junior Member
|
|
Registriert seit: Aug 2010
Alter: 14
Beiträge: 395
|
|
AW: Abfrage mehrer Daten in eine Spalte schreiben.
mach doch mal ein Beispiel, wie es aussehen soll...
Grüße
Thomas
|
08.09.2010, 12:22:59
|
Anfänger
|
|
Registriert seit: Sep 2010
Alter: 58
Beiträge: 37
|
|
AW: Abfrage mehrer Daten in eine Spalte schreiben.
PHP-Code:
select artnum from artikel where MATCHCODE regexp 'Test' order by ARTNUM
Dies Abfrage gibt bei mir 6 Artikelnummern aus 6 Datensätzen aus.
Wie ich die in eine andere Tabelle bekomme weiß ich ja.
Diese Artikelnummern möchte ich aber alle in einen Datensatz einer anderen Tabelle setzen.
|
08.09.2010, 13:17:30
|
Junior Member
|
|
Registriert seit: Aug 2010
Alter: 14
Beiträge: 395
|
|
AW: Abfrage mehrer Daten in eine Spalte schreiben.
Ist mir leider immer noch nicht klar. Wie sieht denn das Ziel aus
a) Zielausgabe (jeder Artikel in eine eigene Spalte)
id, name, "artikel_1", "artikel_2", "artikel_3" ...., "artikel_6"
b) Zielausgabe (alle Artikel zusammen in eine Spalte)
id, name, "artikel_1, artikel_2 .... artikel_6"
Den Fall b) läßt sich mit GROUP_CONCAT() lösen
Zitat:
GROUP_CONCAT(expr)
Diese Funktion gibt einen String als Ergebnis zurück. Dieser gibt die verketteten Nicht-NULL-Werte einer Gruppe zurück.
NULL wird zurückgegeben, wenn keine Nicht-NULL-Werte vorhanden sind. Die vollständige Syntax sieht wie folgt aus:
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]
[SEPARATOR str_val])
mysql> SELECT student_name,
-> GROUP_CONCAT(test_score)
-> FROM student
-> GROUP BY student_name;
Oder:
mysql> SELECT student_name,
-> GROUP_CONCAT(DISTINCT test_score
-> ORDER BY test_score DESC SEPARATOR ' ')
-> FROM student
-> GROUP BY student_name;
|
Grüße
Thomas
|
08.09.2010, 13:54:28
|
Anfänger
|
|
Registriert seit: Sep 2010
Alter: 58
Beiträge: 37
|
|
AW: Abfrage mehrer Daten in eine Spalte schreiben.
OK. Ich erklär es mal so. :-)
Dies Abfrage findet 6 Artikelnummern und schreibt diese in die Tabelle test.
PHP-Code:
INSERT test (artikelnummern) SELECT artnum FROM artikel where matchcode regexp 'CABERG DOWNTOWN S SILVER'
Ergebnis:
+------------------+
| artikelnummern|
+------------------+
| wert1 |
| wert2 | 6 Tabellenspalten
| wert3 |
| wert4 |
| wert5 |
| wert6 |
+------------------+
Haben möchte ich aber:
+--------------------------------------------+
| artikelnummern |
+--------------------------------------------+
| wert1,wert2,wert3,wert4,wert5,wert6, | Nur eine Tabellenspalte
+--------------------------------------------+
Ich hoffe das ist verständlicher.
Gruß
-sensemann-
|
08.09.2010, 14:15:55
|
Junior Member
|
|
Registriert seit: Aug 2010
Alter: 14
Beiträge: 395
|
|
AW: Abfrage mehrer Daten in eine Spalte schreiben.
okay, dann handelt es sich um den Fall b) mit GROUP_CONCAT().
Probier mal ...(ich hoffe es ist kein Syntaxfehler drin...)
Code:
SELECT GROUP_CONCAT(artnum
ORDER BY artnum DESC SEPARATOR ', ')
FROM artikel
where matchcode regexp 'CABERG DOWNTOWN S SILVER' ;
Grüße
Thomas
|
08.09.2010, 14:19:33
|
Anfänger
|
|
Registriert seit: Sep 2010
Alter: 58
Beiträge: 37
|
|
AW: Abfrage mehrer Daten in eine Spalte schreiben.
Klasse. Mit dem Insert dabei funktioniert es wunderbar.
Vielen Dank !!!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:31:46 Uhr.
|