| SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden. |
 |
|

14-05-2007, 06:36
|
|
SusiSorglos
Registrierter Benutzer
|
|
Registriert seit: May 2007
Ort: Farfaraway 02203
Beiträge: 42
|
|
Like %Spalte% geht nicht ?!
Hallo Ihr lieben,
Hab da noch so meine Probleme mit der Syntax.
Ich möchte um den SpaltenNamen ein % haben, nur ich bekomme
es einfach nicht hin, habe schon ne menge Vorzeichen ausprobiert
Kann mir jemand verraten wie es richtig geht !?
PHP-Code:
UPDATE kunden, newplz
SET kunden.bundesland = newplz.bundesland
WHERE kunden.plz like %newplz.plz%
Cu Susi
__________________
PHP 5.3.2, MySql 5.0.67
|

14-05-2007, 09:05
|
|
MelloPie
PHP Master
|
|
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
|
|
evt.
WHERE kunden.plz like CONCAT('%',newplz.plz,'%')
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
|

14-05-2007, 16:25
|
|
Nico_Schubert
Registrierter Benutzer
|
|
Registriert seit: Apr 2003
Beiträge: 27
|
|
Re: Like %Spalte% geht nicht ?!
Zitat:
Original geschrieben von SusiSorglos
Hallo Ihr lieben,
Hab da noch so meine Probleme mit der Syntax.
Ich möchte um den SpaltenNamen ein % haben, nur ich bekomme
es einfach nicht hin, habe schon ne menge Vorzeichen ausprobiert
Kann mir jemand verraten wie es richtig geht !?
PHP-Code:
UPDATE kunden, newplz
SET kunden.bundesland = newplz.bundesland
WHERE kunden.plz like %newplz.plz%
Cu Susi
|
Hallo,
Du musst Dein Suchwort in Anfürungszeichen setzen. Dann sollte es gehen.
UPDATE kunden, newplz SET kunden.bundesland = newplz.bundesland WHERE kunden.plz like '%suchwort%'
mfg. Nico
|

14-05-2007, 18:43
|
|
prego
PHP Senior
|
|
Registriert seit: May 2005
Ort: Hey ropp, hinne riwwer unn wirrer zuricke!
Beiträge: 1.602
|
|
Warum eigentlich LIKE?
Du willst allen Kunden, die irgendwie in ihrer aktuellen Postleitzahl eine gewissen Zahlenkombination haben, die selbe "neue" Postleitzahl geben?
__________________
so long, der-p | 72dpi-club
Microsoft IE-Manager Dean Hachamovitch bei der Vorführung des IE7 Beta Preview 2 am 20.3.2006:
"Wir hatten mit IE ganz offensichtlich was verschlafen."
|

14-05-2007, 21:28
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.482
|
|
Zitat:
Original geschrieben von prego
Du willst allen Kunden, die irgendwie in ihrer aktuellen Postleitzahl eine gewissen Zahlenkombination haben, die selbe "neue" Postleitzahl geben?
|
Nicht die PLZ soll upgedated werden, sondern das Bundesland.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

15-05-2007, 00:42
|
|
SusiSorglos
Registrierter Benutzer
|
|
Registriert seit: May 2007
Ort: Farfaraway 02203
Beiträge: 42
|
|
@ Nico
newplz.plz iss kein Suchwort sondern eine Spalte
Thänx @ MelloPie. So hat's geklappt.
Für die die jetzt nicht verstanden haben was ich wollte:
Ich habe eine Tabelle mit allen PLZ's und den dazugehörigen Bundesländern -> Landkreisen -> KFZ Zeichen usw.
Da Großstädte aber mehrere PLZ's haben habe ich für z.B. Köln alle in eine Spalte geschrieben und durch ein | getrennt.
50608|51143|51149|51147 usw.usw.
In PHP iss das kein Problem für mich gewesen aber SQL werd ich wohl nie verstehen ;-)
Es liegt wohl auch an der Doku von mySQL. Dort findet man einfach keine schönen Beispiele (so wie in der PHP-Manual)
Habe jetzt immer noch nicht verstanden was CONCAT eigentlich bewirkt. Aber ich werde noch dahinter kommen..
Cu & thänxx
Susij
__________________
PHP 5.3.2, MySql 5.0.67
|

15-05-2007, 01:44
|
ghostgambler
Master 
|
|
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
|
|
CONCAT verbindet Strings
Übrigens: Normalisierung?
Dein Datenbank-Schema ist schlecht und dein WHERE plz LIKE-Query dürfe im live-Betrieb echt tödlich sein...
|

15-05-2007, 09:11
|
|
SusiSorglos
Registrierter Benutzer
|
|
Registriert seit: May 2007
Ort: Farfaraway 02203
Beiträge: 42
|
|
Hmmm. Ich dachte so wie ich es vorher hatte wäre es schlecht.
Vorher:
Alles in einer Tabelle.
Anschrift-Kategorie-Timestamp(s)-Berechtigung-Benutzername-Passwort
Also Rund 34 Spalten bei ca 25.000 Einträgen.
Jetzt MÖCHTE ich
KNR-Benutzername-Passwort in eine Tabelle
und alles weitere per $_Session (knr) verlinken.
Die 25.000 Einträge je nach Kategorie (es gibt zur Zeit 2) in 2 Tabellen aufteilen. Da wie ich meine es wohl schneller ist
eine kleine Tabelle zu durchsuchen wie eine große.
Der User kann nach ( plz%, %ort%, vorwahl%, %name%) suchen, sowie nach (= Bundesland) und dem daraus Resultierendem (= Landkreis)
Wie sollte ich es sonst machen? - Es läuft eigentlich recht schnell!
Oder meinst Du das UPDATE wonach ich fragte? Das war nur ne einmalige Sache. Hat ca 200 Sekunden gedauert 
Wollte nur alle Suchergebnisse einheitlich haben damit nach Bundesland bzw. Landkreis gesucht werden kann.
Die Tabelle (newplz) wird nur dazu benötigt das wenn sich jemand Einträgt das er anhand der PLZ direkt seinem Bundesland & Landkreis zugeordnet wird. Das kommt aber in der Regel selten vor (~ 1 x Woche) da es sich um eine (sagen wir mal) FirmenDB handelt und sich da nicht jeden Tag welche hinzu kommen.
Zumal schon ca. 99 bzw. 90% der Firmen eingetragen sind (je nach Kategorie).
__________________
PHP 5.3.2, MySql 5.0.67
Geändert von SusiSorglos (15-05-2007 um 09:20 Uhr)
|

15-05-2007, 09:33
|
|
MelloPie
PHP Master
|
|
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
|
|
also 25000 Einträge sind nicht wirklich viel, da brauchste keine 2 tabellen.
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
|

15-05-2007, 10:23
|
|
SusiSorglos
Registrierter Benutzer
|
|
Registriert seit: May 2007
Ort: Farfaraway 02203
Beiträge: 42
|
|
Naja gut. Ich bin aber jetzt schon dabei alles umzustellen und je nach Kategorie werden nicht alle Spalten benötigt. also wird es sicherlich ein vorteil sein.
Aber ist ist wohl vorteilhafter wenn ich wenigstens die Benutzer in eine eigene Tabelle speichere?! Und diese per KNR verlinke ?
Dies wollte ich (wie bisher) per Session machen.
__________________
PHP 5.3.2, MySql 5.0.67
|

15-05-2007, 10:38
|
|
MelloPie
PHP Master
|
|
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
|
|
dann würde ich trotzdem nicht nach kategorien die tabelen teilen sondern logisch normalisieren.
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
|

23-06-2007, 11:25
|
|
SusiSorglos
Registrierter Benutzer
|
|
Registriert seit: May 2007
Ort: Farfaraway 02203
Beiträge: 42
|
|
PHP-Code:
UPDATE adressen, newplz
SET adressen.ort = newplz.ort
WHERE adressen.plz like CONCAT('%',newplz.plz,'%')
Brauche da doch nochmal Hilfe
Und zwar ist mir grade aufgefallen das mein letztes Update gar nicht zu 100% geklappt hat.
Und zwar habe ich ja meine Tabelle(n) mit dem obigen Befehl geupdated.
Jetzt erst ist mir aufgefallen das CONCAT('%',newplz.plz,'%') zwar keinen Fehler bringt aber leider auch nicht zum Ziel führt.
Einige Orte haben ja mehrere PLZ's (50608| 51143| 51147| 51149) z.B.
Wie gesagt iss der befehl nur ne einmalige Sache. Also nicht wieder gleich schimpfen.
Cu Susi
__________________
PHP 5.3.2, MySql 5.0.67
|

23-06-2007, 12:56
|
|
ArSeN
Registrierter Benutzer
|
|
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
|
|
Zitat:
|
Und zwar ist mir grade aufgefallen das mein letztes Update gar nicht zu 100% geklappt hat.
|
Hmmm also wenn ich mal scharf über diese Fehlerbeschreibung nachdenke würde ich sagen, es liegt daran, dass du etwas falsch gemacht hast.
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
|

23-06-2007, 22:11
|
|
SusiSorglos
Registrierter Benutzer
|
|
Registriert seit: May 2007
Ort: Farfaraway 02203
Beiträge: 42
|
|
Ja, ich merk schon Du bist ein Helles Köpfchen. Hilft mir nun aber auch nicht weiter.
Kann mir jemand weiterhelfen und mir erklären warum es mit dem '%newplz.plz%' nicht klappt ?!
Cu Susi
__________________
PHP 5.3.2, MySql 5.0.67
|

23-06-2007, 22:35
|
|
ArSeN
Registrierter Benutzer
|
|
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
|
|
Vielleicht war der Wink doch einfach zu undeutlich.
Gib uns eine Fehlerbeschreibung!!!
Besser?
Was heißt denn bitte "es geht nicht"? Sollen wir hellsehen, wass der MySQL-Server bei dir gemacht und was nicht, oder was? Ja moment ich hole schnell das Pendel und besorge noch etwas schweineblut beim Mitternachtsmetzger.
Was genau ist passiert? Was ist nicht passiert? Das nennt man Fehlerbeschreibung!
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
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.
|
|
|
|
PHP News
|