SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 08.09.2010, 02:56:45
-sensemann- -sensemann- ist offline
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-
Mit Zitat antworten
  #2  
Alt 08.09.2010, 08:39:43
thomas_w thomas_w ist offline
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
Mit Zitat antworten
  #3  
Alt 08.09.2010, 13:06:53
-sensemann- -sensemann- ist offline
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-
Mit Zitat antworten
  #4  
Alt 08.09.2010, 13:15:01
thomas_w thomas_w ist offline
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
Mit Zitat antworten
  #5  
Alt 08.09.2010, 13:22:59
-sensemann- -sensemann- ist offline
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.
Mit Zitat antworten
  #6  
Alt 08.09.2010, 14:17:30
thomas_w thomas_w ist offline
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
Mit Zitat antworten
  #7  
Alt 08.09.2010, 14:54:28
-sensemann- -sensemann- ist offline
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 (artikelnummernSELECT 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-
Mit Zitat antworten
  #8  
Alt 08.09.2010, 15:15:55
thomas_w thomas_w ist offline
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
Mit Zitat antworten
  #9  
Alt 08.09.2010, 15:19:33
-sensemann- -sensemann- ist offline
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 !!!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Daten binär in Abfrage auswerten - knifflige Sache cooper64 MySQLi/PDO/(MySQL) 1 03.05.2010 12:31:08
Abfrage der Zeit in einer datetime - Spalte nurm MySQLi/PDO/(MySQL) 3 05.09.2006 14:24:33
Abfrage einer bestimmten Spalte in SQL LV2005 MySQLi/PDO/(MySQL) 7 01.08.2006 19:15:54
Daten einer Spalte in zwei Spalten aufteilen andi303 MySQLi/PDO/(MySQL) 3 23.01.2005 23:02:00
Benutzerverwaltung | MYSQL | upload und daten abfrage Andy.C PHP Entwicklung und Softwaredesign 7 08.03.2004 22:47:05


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:47:37 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt