Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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)

Frage Entwicklung PHP

Mitglied: FeuerTeufel

FeuerTeufel (Level 1) - Jetzt verbinden

16.06.2011 um 19:19 Uhr, 4989 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
JavaScript
gelöst Website nach Bedingung umleiten (6)

Frage von zeroblue2005 zum Thema JavaScript ...

PHP
PHP MySQL Login (7)

Frage von Yanmai zum Thema PHP ...

Webbrowser
gelöst Daten in entfernte Mysql DB schreiben (3)

Frage von nullacht15 zum Thema Webbrowser ...

Datenbanken
MySQL: Zwei Spalten in einer View zählen (11)

Frage von Memo66 zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...