Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst SUBSTRING in mysql (where bedingung)

Mitglied: FeuerTeufel

FeuerTeufel (Level 1) - Jetzt verbinden

16.06.2011 um 19:19 Uhr, 5131 Aufrufe, 8 Kommentare

Hallo, ich möchte den Befehl SUBSTR in die Where-Bedingung einer Mysqo-Abfrage einbauen, bis jetzt erfolglos.

Nachdem ich jetzt den ganzen Abend versucht habe das hin zu bekommen und Google mir auch keine wirkliche Hilfe war, stelle ich die frage jetzt mal hier.

Ich brauche die SUBSTRING-Funktion in der where-bedingung der mysql-Ausgabe. Und das, obwohl zwei Tabellen mit Join verknüpft sind.

In der Tabelle1 steht in der Spalte user der Wert 'FFFFFFUserid' oder '000000Userid'

In der Tabelle2 steht in der Spalte Userid die Userid, in der Spalte Username eben der Name.


Dazu ist das meiste gesagt. Wenn ich anhand der Chat-Message den Usernamen anzeigen lassen will, dann will ich die beiden Tabellen mit Join verknüpfen - sonst brauche ich ja zwei Select-Abfrage.

PHP-Code:
$query = "SELECT $telegramm.user, $user.userid, $user.username,
FROM $telegramm,$user WHERE $user.userid = $telegramm.user";

Ich habe hier mal bewusst den Befehl SUBSTR weg gelassen, weil es Funktioniert solange die Userid in $telegramm.user eindeutig ist. Aber egal wie ich den SUBSTR-Befehl anwende, es funktioniert nicht. Dann gibt er keinen Wert mehr zurück.


PHP-Code:
$query = "SELECT $telegramm.user, $user.userid, $user.username,
FROM $telegramm,$user WHERE $user.userid = SUBSTR('$telegramm.user',4,4)";

Wie gesagt, alles was ich bisher versucht habe funktioniert nicht. Aber wie kriege ich das hin, wenn ich die beiden Tabellen verknüpfen will?

Gruß
Matthias
Mitglied: Biber
16.06.2011 um 20:06 Uhr
Moin Matthias-Niklasg,

ist ja nicht gerade mein Fachgebiet, aber...
Zitat von FeuerTeufel:
PHP-Code:
$query = "SELECT $telegramm.user, $user.userid, $user.username,
FROM $telegramm,$user WHERE $user.userid = SUBSTR('$telegramm.user',4,4)";

--> ist es denn so schlau, hier: "...SUBSTR('$telegramm.user',4,4)" ... zu schreiben?

Ich als Laie hätte "... SUBSTR( $telegramm.user, 4, 4)"; geschrieben. Also ohne die einfachen Anführungszeichen.

....aber was verstehen Biber schon von Chatprogrammen...

Grüße
Biber
Bitte warten ..
Mitglied: FeuerTeufel
16.06.2011 um 22:40 Uhr
Leider geht es ohne Anführungszeichen auch nicht.
Trotzdem danke für deine Mühe.
Bitte warten ..
Mitglied: Biber
17.06.2011 um 09:43 Uhr
Moin Niklasg,

Frage: bringt denn ein "SELECT $telegramm.user, Substr($telegramm.user, 4, 4) as teilstr From $telegramm" das erwartete Ergebnis bzgl des Teilstrings?

Grüße
Biber
Bitte warten ..
Mitglied: Logan000
17.06.2011 um 09:48 Uhr
Moin Moin

Versuch ich mal mein Glück.
Ich habe ehrlich gesagt nicht so richtig verstanden was du erwartest was dir Substring hier liefern soll.
Denn für 'FFFFFFUserid' liefert dein SUBSTR ja 'FFFU'. Das soll passen?

Aber ich denke, wenn du einfach mal folgendes Statement
01.
Select $telegramm.user, SUBSTR($telegramm.user,4,4) From $telegramm
auf deiner Datenbank ausführst, solltest du recht schnell (durch drüberschauen) feststellen,
ob Werte vorhanden sind die auch in $user.userid vorkommen.

Gruß L.
Bitte warten ..
Mitglied: FeuerTeufel
17.06.2011 um 15:13 Uhr
Moin Biber,

ja dein Beispiel liefert die erwünschten Werte zurück.

Nur das verstehe ich gerade nicht, denn zur Fehleranalyse hatte ich auch eine 'einfache' Select-Abfrage mit Substr erstellt, und selbst die hat nicht funktioniert.
Deshalb war ich schon der Meinung, dass meine Mysql-Version zu alt für diesen Befehl ist.

Aber wie gesagt - dein Beispiel funktioniert bestens.

Ich muss jetzt erst mal weg, danach versuch ich erneut mein Glück;)
Danke für eure Hilfe.

Gruß
Niklasg /Matthias
Bitte warten ..
Mitglied: FeuerTeufel
17.06.2011 um 22:55 Uhr
Hi,

ja der Wert FFFFFFUserid würde in etwa so aussehen: FFFFFF264. Userid steht also für eine Userid eines Chat-Teilnehmers. Und genau dese ID brauche ich, um damit den Usernamen auslesen zu können. Deshalb ja auch die Verknüpfung mit Join.


Ich bin zwar noch nicht fertig, aber die Select-Abfrage mit Substr funktioniert schon mal. Also vielen Dank für eure Hilfe!
Ich wüsste zwar nicht was ich heute anders mache als die letzten Tage, aber er liefert die korrekten Usernamen zurück - also die WHEREbedingung mit Substr funktioniert!

Vielen Dank!

Gruß
Niklasg
Bitte warten ..
Mitglied: FeuerTeufel
18.06.2011 um 18:00 Uhr
Also jetzt funktioniert alles so wie es soll.
Klappt alles prima!

Vielen Dank nochmal an alle für die Hilfe

Gruß
Niklasg
Bitte warten ..
Mitglied: Biber
19.06.2011 um 16:49 Uhr
Moin Niklasg,

auch wenn der Beitrag schon als "Gelöst" markiert ist.... ich verstehe ebensowenig wie Logan000 wieso das so ist

Im Eröffnungsbeitrag behauptest du
In der Tabelle1 steht in der Spalte user der Wert 'FFFFFFUserid' oder '000000Userid'
In der Tabelle2 steht in der Spalte Userid die Userid,
und auch un deinem Kommentar vom 17.06. nach der Tagesschau sagst du
ja der Wert FFFFFFUserid würde in etwa so aussehen: FFFFFF264.
Daraus lese ich --> die matching Userid ist z.b. die "264" (mal dahingestellt, ob numerisch oder als Text.

WTF kann dann ein "SELECT SUBSTR($telegramm.user, 4, 4) From $telegramm" zu einem "richtigen Ergebnis führen?

Das muss doch dann entweder
SELECT SUBSTR($telegramm.user, 7, 4) From $telegramm
sein, denn "SUBSTR($telegramm.user, 1, 6) From $telegramm" ist doch immer "FFFFFF" oder "000000".

Oder es ist vielleicht auch
SELECT SUBSTR($telegramm.user, -4, 4) From $telegramm
...also die letzten 4 Stellen des Feldes $telegramm.user, FALLS dieses ein CHAR(12)-Feld ist und somit die userids maximal 4stellig.

Gib uns doch nochmal des Rätsels Lösung:
  • welche Datentypen haben $telegramm.user und $user.userid?
  • wie sieht denn jetzt der matchende/übereinstimmende Teil des beiden Felder aus?

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Datenbanken
SQL max wert in WHERE Bedingung
gelöst Frage von StarMannDatenbanken7 Kommentare

Hi, ich möchte alle Daten Sätze aus dem größten Jahr, Wie bekomme ich den wert in die WHERE Bedingung? ...

Datenbanken

MS-SQL - wie kann man in der where Bedingung nur den ersten Datensatz (TOP 1) ermitteln?

Frage von Rene1976Datenbanken2 Kommentare

Hallo, wir nutzen den MS-SQL Server 2012. Für eine Abfrage über mehrere Tabellen brauche ich als Ergebnis der Unterabfrage ...

C und C++

Anfängerproblem mit Substrings und Hexadezimalzahlen

gelöst Frage von Aicher1998C und C++8 Kommentare

Hallo Bislang hab ich nur leichte Arduino C Sachen gemacht, aber jetzt müsste ich HEX Zahlen in ein Array ...

Batch & Shell

Substring in einer Textvariablen ersetzen

gelöst Frage von donnyS73lbBatch & Shell3 Kommentare

Hallo, meine *.bat liest aus einer Textdatei die Textzeilen aus und befüllt damit Batch-Variablen. Nun möchte ich in der ...

Neue Wissensbeiträge
Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 32 MinutenWindows 10

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

iOS
Updates für Iphone und Co
Information von sabines vor 3 StundeniOS

Gestern abend ist iOS 11.3.1 erschienen, ein kleineres Update, dass einige Lücken schließt und "Lahmlegen" nach einem Display Tausch ...

Windows 7

Windows 7 - Server 2008 R2: Exploit für Total Meltdown verfügbar

Information von kgborn vor 1 TagWindows 7

Kleine Information für Administratoren, die für die Updates von Windows 7 SP1 und Windows Server 2008 R2 SP1 verantwortlich ...

Sicherheit

Zero Day-Schwachstelle im Internet Explorer - wird von APT bereits ausgenutzt

Information von kgborn vor 1 TagSicherheit

Im Kernel des Internet Explorer scheint es eine Zero Day-Lücke zu geben, die von staatlichen Akteuren (APT) im Rahmen ...

Heiß diskutierte Inhalte
C und C++
Frage1 C Programmierung-Makefile Frage2 PHP-Programmierung HTTP-Fehler 404
Frage von KatalinaC und C++28 Kommentare

Hallo, ich habe 2 Fragen, die nichts miteinander zu tun haben aber mit denen ich mich gerade beschäftige: 1. ...

LAN, WAN, Wireless
Watchguard T15 VPN Einrichtung
gelöst Frage von thomasjayLAN, WAN, Wireless25 Kommentare

Hallo zusammen, wir möchten gerne über unsere Watchguard T15 einen VPN-Tunnel (Mobile VPN with IPSec) einrichten! Als Client nutzen ...

DSL, VDSL
ISP Wechsel auf Vodefone Koax, Gebäudeverkabelung nur per Cat 7
gelöst Frage von wusa88DSL, VDSL19 Kommentare

Hallo Zusammen, ich bin momentan bei Mnet als Glasfaser Kunde und möchte Preis/Leistungs-Technisch zu Kabel Deutschland / Vodafone wechseln. ...

Hyper-V
HyperV DC + DNS + AC
gelöst Frage von HardstylesHyper-V16 Kommentare

Hallo kann mir jemand sagen wieso meine Domänen Computer kein Internetzugang erhalten? Ich hab hier ein Server wo die ...