php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


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

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 17-07-2008, 22:12
netleader
 Newbie
Links : Onlinestatus : netleader ist offline
Registriert seit: Feb 2002
Beiträge: 128
netleader ist zur Zeit noch ein unbeschriebenes Blatt
Standard Zu charindex

Hallo,

ich habe in meiner MSSQL-Datenbank in einer Spalte folgenden Inhalt

2048333|0|0|NULL|5|1

mit

LEFT (dbo.Logbuch.PrimeKey; CHARINDEX('|'; dbo.Logbuch.PrimeKey) - 1)

habe ich mir schon den Inhalt vor dem ersten | geholt, jetzt brauche ich
aber nur die 5 als Ergebnis, bekomme es aber nicht hin.

Hat jemand einen Tip?
__________________
Vielen Dank
Mit Zitat antworten
  #2 (permalink)  
Alt 17-07-2008, 22:23
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

REVERSE(dbo.Logbuch.PrimeKey) => 1|5|NULL

SUBSTRING_INDEX(REVERSE(dbo.Logbuch.PrimeKey), '|', 2) => 1|5

REVERSE(SUBSTRING_INDEX(REVERSE(dbo.Logbuch.PrimeKey), '|', 2)) => 5|1

SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(REVERSE(dbo.Logbuch.PrimeKey), '|', 2)), '|', 1) => 5


Oder einfach richtig normalisieren, dann kommt man nicht in solche Schwulitäten.
Mit Zitat antworten
  #3 (permalink)  
Alt 17-07-2008, 22:35
netleader
 Newbie
Links : Onlinestatus : netleader ist offline
Registriert seit: Feb 2002
Beiträge: 128
netleader ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

Kommt jetzt aber eine Fehlermeldung im Management Studio,

ungültiger oder fehlender Ausdruck


liegt aber wohl daran das ich mal wieder nicht geschrieben habe
das in dieser Spalte nicht immer | vorkommem.


Gruss
__________________
Vielen Dank
Mit Zitat antworten
  #4 (permalink)  
Alt 18-07-2008, 00:02
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Ja was kommt denn dann in der Spalte so vor?
Mit Zitat antworten
  #5 (permalink)  
Alt 18-07-2008, 09:11
netleader
 Newbie
Links : Onlinestatus : netleader ist offline
Registriert seit: Feb 2002
Beiträge: 128
netleader ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

es eigentlich nur 3 Möglichenkeiten.

1) 2048333|0|0|NULL|5|1

2) und dann eine 6 oder 7 stellige Ziffer vorne praktisch wie vor dem
ersten |

Gruss
__________________
Vielen Dank
Mit Zitat antworten
  #6 (permalink)  
Alt 18-07-2008, 11:00
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Mit
PHP-Code:
$entries explode('|'dbo.Logbuch.PrimeKey); 
hast du alle Elemente einzeln in einem Array. Nun kannst du ja abfragen, welche existieren und welche nicht.
Aber eigentlich sollte man hier gar keine solchen Tipps geben, denn dein DB-Design ist für den Mülleimer. Mache zuerst mal eine normalisierte Struktur, dann gibt es gar keine solchen Probleme.
__________________
Gruss
H2O
Mit Zitat antworten
  #7 (permalink)  
Alt 18-07-2008, 19:26
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Original geschrieben von netleader
es eigentlich nur 3 Möglichenkeiten
Du hast nur zwei genannt und die zweite verstehe ich nicht mal.
Mit Zitat antworten
  #8 (permalink)  
Alt 19-07-2008, 14:09
netleader
 Newbie
Links : Onlinestatus : netleader ist offline
Registriert seit: Feb 2002
Beiträge: 128
netleader ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Es kommem einmal diese Einträge mit den | vor

dann können aber auch eine 6 oder 7 stellige Zahl vorkommen.

Zitat:
H2O - "dein DB-Design ist für den Mülleimer"

Sorry aber das DB Design habe ich nicht entworfen,
musste es so übernehmen
__________________
Vielen Dank
Mit Zitat antworten
  #9 (permalink)  
Alt 19-07-2008, 16:33
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Original geschrieben von netleader
Es kommem einmal diese Einträge mit den | vor
dann können aber auch eine 6 oder 7 stellige Zahl vorkommen.
Dann prüfe eben mit IF() ob überhaupt ein | vorkommt. Falls dem so ist, wendest du obigen Ausdruck an, ansonsten ... machst du irgendwas anderes, keine Ahnung was.

Sieht dann etwa so aus:
Code:
SELECT 
    IF(INSTR(l.PrimeKey, '|') != 0, 
        SUBSTRING_INDEX(REVERSE(
                SUBSTRING_INDEX(REVERSE(l.PrimeKey), '|', 2)), '|', 1),
        l.PrimeKey) AS PrimeKey, 
    ...
FROM dbo.Logbuch AS l
...
Zitat:
Sorry aber das DB Design habe ich nicht entworfen,
musste es so übernehmen
Kein Grund, es nicht zu ändern.
Mit Zitat antworten
  #10 (permalink)  
Alt 20-07-2008, 16:12
netleader
 Newbie
Links : Onlinestatus : netleader ist offline
Registriert seit: Feb 2002
Beiträge: 128
netleader ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Funktionert jetzt wie ich es brauche - DANKE
__________________
Vielen Dank
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

11.10.2018 Berni | Kategorie: PHP/ Anzeigenmarkt
PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:28 Uhr.