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 |
18.10.2010, 14:46:26
|
Anfänger
|
|
Registriert seit: Oct 2009
Alter: 50
Beiträge: 13
|
|
Nach bestimmten Wert in unbekannter Spalte suchen
Hallo zusammen,
nachdem ich schon googelige Augen und dennoch nicht wirklich gefunden habe, was ich suche, frage ich mal hier vorsichtig nach.
Ich möchte in einem Datensatz etwas ändern, in dem in irgendeiner Spalte ein bestimmter String steht.
Also z.B.
Spalten in Tabelle: id, name1, name2, name3, name4, status
Und nun möchte ich sowas wie:
Update Tabelle SET status = neu, nameX = "" WHERE nameX = "Suchstring"
Is mir klar, dass das so nix wird, aber das Prinzip sollte damit verdeutlicht werden, wobei ich nicht weiß ob oder in welcher der Spalten name1-4 der Suchstring als Wert steht. Gibt es da irgendeine knappe Lösung?
Besten Dank im voraus!
|
18.10.2010, 15:22:57
|
Junior Member
|
|
Registriert seit: Aug 2010
Alter: 14
Beiträge: 395
|
|
AW: Nach bestimmten Wert in unbekannter Spalte suchen
Wenn nicht klar ist, in welcher Spalte der gesuchte Wert steht, ist es natürlich auch schwerig einen passenden UPDATE zu formulieren.
Als einfachste Lösung sehe ich viele kleine UPDATEs, die den UPDATE "probieren". Ob dies eine performante Lösung ist, bleibt offen.
Code:
UPDATE tabelle1
SET status = neu,
name1 = NULL
WHERE name1 LIKE '%suchmich%';
UPDATE tabelle1
SET status = neu,
name2 = NULL
WHERE name2 LIKE '%suchmich%';
UPDATE tabelle1
...
Findet der UPDATE etwas passendes, wird die Änderungen durchführt, findet er nichts, passiert nichts.
Grüße
Thomas
__________________
Die SQL-Backstube
Bietet Rezepte, Lösungen und ausführliche Beispiele rund um gesundes SQL und zufriedene Datenbanken.
Geändert von thomas_w (18.10.2010 um 15:47:56 Uhr)
Grund: Schreibfehler korrigiert
|
18.10.2010, 15:37:26
|
Anfänger
|
|
Registriert seit: Oct 2009
Alter: 50
Beiträge: 13
|
|
AW: Nach bestimmten Wert in unbekannter Spalte suchen
Hmm, genau sowas wollte ich vermeiden. Diese Lösung ist mir vorher schon klar gewesen, aber ich dachte es gibt da vielleicht was cleveres, um viel Schreibarbeit und eventuell Schleifen zu sparen. Schade! Dennoch danke!
|
18.10.2010, 16:48:14
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: Nach bestimmten Wert in unbekannter Spalte suchen
1. Spalten durch zu nummerieren " name1, name2, name3, name4," ist selten eine gute Idee
2. Wenn du nicht weißt wo du die Daten suchen lassen willst, wer soll es denn dann wissen?
Vermutliche Ursache für die Probleme:
Ein grober Verstoß gegen Die 5 Normal Formen
|
18.10.2010, 19:17:37
|
Anfänger
|
|
Registriert seit: Oct 2009
Alter: 50
Beiträge: 13
|
|
AW: Nach bestimmten Wert in unbekannter Spalte suchen
Diesen wenig hilfreichen Kommentar will ich dann doch noch etwas entschärfen:
Die eigentlichen Felder heißen:
caller_1, caller_2, called_1, called_2,
was zur Lösung des Problems jedoch wenig beitragen sollte. Zumindest kannst Du daraus lesen, dass es sich vielleicht um eine sportliche Begegnung handelt. Wenn Du jetzt noch wissen würdest, dass sich die Beteiligten selber eintragen, was auch nicht der Problemlösung dienlich ist, haben sich wohl Deine beiden Punkte erübrigt.
Manchmal hoffte ich, dass in Foren dieser Art etwas professioneller geantwortet werden würde. Nichts für Ungut, dennoch danke für die Mühe!
|
18.10.2010, 19:29:13
|
Junior Member
|
|
Registriert seit: Aug 2010
Alter: 14
Beiträge: 395
|
|
AW: Nach bestimmten Wert in unbekannter Spalte suchen
Zitat:
Zitat von EagleFox
Die eigentlichen Felder heißen:
caller_1, caller_2, called_1, called_2,
|
Was für Datentypen sind denn diese vier Felder? Zeige doch mal
Code:
mysql>SHOW CREATE TABLE xyz;
Grüße
Thomas
__________________
Die SQL-Backstube
Bietet Rezepte, Lösungen und ausführliche Beispiele rund um gesundes SQL und zufriedene Datenbanken.
|
18.10.2010, 19:39:43
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
|
|
AW: Nach bestimmten Wert in unbekannter Spalte suchen
Macht keinen Sinn auf mir rum zu hacken!
Schließlich bist du es der sich diese witzige Struktur ausgedacht hast.
Zitat:
Wenn Du jetzt noch wissen würdest, dass sich die Beteiligten selber eintragen,
|
User können bei dir Spalten erzeugen?
Zitat:
was auch nicht der Problemlösung dienlich ist, haben sich wohl Deine beiden Punkte erübrigt.
|
Das schreit nach einer n:m Beziehzung!
Und das auch!
Solltest du diesen Gedanken verfolgen, dann würdest du die DB Normalisieren und die Problem hätten sich fix gegessen!
|
18.10.2010, 19:43:22
|
Anfänger
|
|
Registriert seit: Oct 2009
Alter: 50
Beiträge: 13
|
|
AW: Nach bestimmten Wert in unbekannter Spalte suchen
Die Datentypen sind varchar und fulltext indexiert
|
18.10.2010, 19:52:10
|
Junior Member
|
|
Registriert seit: Aug 2010
Alter: 14
Beiträge: 395
|
|
AW: Nach bestimmten Wert in unbekannter Spalte suchen
Zitat:
Zitat von EagleFox
Die Datentypen sind varchar und fulltext indexiert
|
Okay, auf was ich hinaus will ist folgende normalisierte Tabellenstruktur
Code:
CREATE TABLE tabelle2 (
id INT NOT NULL,
status INT NOT NULL,
art_id INT NOT NULL, -- Nr für eine Feldbeschreibung (z.B. 1,2 = caller; 3,4 = called )
wert VARCHAR(100) NOT NULL, -- Ersatz für caller_1, caller_2, called_1, called_2,
PRIMARY KEY (id)
)
Jetzt könnte der ursprüngliche UPDATE einfach so aussehen:
Code:
UPDATE tabelle2
SET status = 0,
wert = NULL
WHERE wert LIKE '%suchmich%';
In welcher Tabellenspalte etwas gefunden wird, ist nun egal.
Grüße
Thomas
__________________
Die SQL-Backstube
Bietet Rezepte, Lösungen und ausführliche Beispiele rund um gesundes SQL und zufriedene Datenbanken.
|
18.10.2010, 19:53:33
|
Anfänger
|
|
Registriert seit: Oct 2009
Alter: 50
Beiträge: 13
|
|
AW: Nach bestimmten Wert in unbekannter Spalte suchen
@DokuLeseHemmung Ich hacke nicht auf Dir rum, aber Dein Beitrag fürht niemanden weiter. Oder ich erkenne den höheren Sinn dahinter nicht.
Nicht jede n:m-Beziehung lässt sich normalisieren!
Es gibt 1000 Spieler, 500 gehören zur Mannschaft A, 500 zur Mannschaft B.
Jeder Spieler aus A oder B kann selber eine Begegnung gegen die jeweils andere Mannschaft aussprechen und einen beliebigen Partner eintragen (caller_1, caller_2). Die jeweils andere Mannschaft kann dann eine beliebige Gegenpaarung eintragen (called_1, called_2).
Hintergrund verstanden? Somit habe ich keine Ahnung in welcher Spalte der gesuchte Spieler stehen könnte! Und zu normalisieren gibt es da nichts!
|
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 22:01:49 Uhr.
|