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, 5116 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? ...

Batch & Shell
Substring ? Batch
Frage von Antum-frischlingBatch & Shell5 Kommentare

Guten Tag liebe Programmierer, ich habe ein kleines Problem und zwar ich möchte von einem Datei die ersten 11 ...

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 ...

Neue Wissensbeiträge
Vmware
VMware Update für den ESXi 5.5 verfügbar
Information von sabines vor 14 StundenVmware

Nach dem ganzen Hickhack um Update mit Microcode Anpassungen und Rückzug, gibt es nun für den ESXi 5.5 ein ...

CPU, RAM, Mainboards

Meltdown und Spectre: Intel zieht Microcode-Updates für Prozessoren zurück

Information von keine-ahnung vor 18 StundenCPU, RAM, Mainboards5 Kommentare

Moin, extrem lutztig. Nur gut, dass ich noch nicht beim Probanden-Bingo mitgemacht habe :-) LG, Thomas

Router & Routing
PfSense als Addon auf QNAP
Information von magicteddy vor 1 TagRouter & Routing7 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 1 TagDatenschutz1 Kommentar

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement26 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Server
TEMP-Profile
gelöst Frage von Forseti2003Windows Server21 Kommentare

Guten Morgen, wer kennt sie nicht, die lieben Temporären Benutzerprofile, vorallem immer dann, wenn man sie am wenigsten braucht. ...

Multimedia & Zubehör
Welches Tablet für die Verkäufer?
Frage von Hendrik2586Multimedia & Zubehör15 Kommentare

Guten Morgen meine Lieben, vielleicht könnt ihr mir ja helfen. Es geht um unsere Außendienstmitarbeiter /Verkäufer. Sie sollen demnächst ...

Ubuntu
Ubuntu - Routing mit 2 Netzwerkkarten?
Frage von gabrixlUbuntu13 Kommentare

Hei Folgende Situation: Ich habe zwei virtuelle Maschinen: 1 - Server für DHCP, DNS und Routing - Netzwerkkarte 1: ...