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 21-01-2003, 16:03
oms
 Junior Member
Links : Onlinestatus : oms ist offline
Registriert seit: Dec 2002
Ort: Berlin
Beiträge: 179
oms ist zur Zeit noch ein unbeschriebenes Blatt
Standard Zeichenanzahl im String

Hallo ihr!
Kennt jemand eine Funktion in mysql, mit der man bestimmte Zeichen in einem String zählen kann?

Beispiel:
1-3-7-12-98

Rauskommen muß 4.

Danke schonmal.
Gruß oms
__________________
{brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 22-01-2003, 00:00
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Rauskommen muß 4.
ich gehe mal von der suche nach '-' aus....

hatte heute mal ein wenig gesucht, aber auch nichts gefunden.

habe aber mal noch einen kumpel gefragt, wenn ich/DU glück habe/HAST, sollte ich morgen eine antwort haben....

ansonsten hätte ich schon mal einen alternativvorschlag, wenn es über die DB nicht direkt gehen sollte.

lies das ganze feld ein und counte die vorkommensanzahl mit hilfe von php.
ist zwar nicht schön, aber wohl die letzte möglichkeit, wenn es nicht in der DB funktionieren sollte.

hier schon mal ein paar links

http://de.php.net/manual/de/function.count-chars.php

http://de.php.net/manual/de/function.explode.php
$array = explode ("-", $deinstring);
nach dem explode hat man mit count($array)-1 die anzahl der zeichen.

das hier müsste aber der ideale weg (ohne DB) sein
http://de.php.net/manual/de/function.substr-count.php
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #3 (permalink)  
Alt 22-01-2003, 09:57
oms
 Junior Member
Links : Onlinestatus : oms ist offline
Registriert seit: Dec 2002
Ort: Berlin
Beiträge: 179
oms ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja, ich meinte die "-", sorry.
Mit PHP, klar, kein Problem. Ich bin hier bloß gerade beim Code optimieren und wollte die DB möglichst viel, wenn nicht sogar alles machen lassen.

Wäre cool, wenn du die Variante mit MySQL rausbekommen würdest.
Geht da nicht irgendwas mit MATCH etc. ?

Gruß oms
__________________
{brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!
Mit Zitat antworten
  #4 (permalink)  
Alt 22-01-2003, 10:27
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

ja. da bin ich auch drübergestolpert gewesen. der liefert dir nur nicht die anzahl. wäre ja zu einfach gewesen ....


MATCH (col1,col2,...) AGAINST (expr)
MATCH (col1,col2,...) AGAINST (expr IN BOOLEAN MODE)
MATCH ... AGAINST() is used for full-text search and returns relevance - similarity measure between the text in columns (col1,col2,...) and the query expr. Relevance is a positive floating-point number. Zero relevance means no similarity. MATCH ... AGAINST() is available in MySQL version 3.23.23 or later. IN BOOLEAN MODE extension was added in version 4.0.1. For details and usage examples, see section 6.8 MySQL Full-text Search.

er zeigt dir nur das vorkommen an. mehr leider nciht.
http://www.mysql.com/doc/en/Fulltext_Search.html

die antwortmail ist übrigens da. ist aber nicht gerade sehr vielversprechend....

Zitat:
hab leider keine gebrauchsfertige lösung parat...

http://www.mysql.com/doc/en/String_functions.html

oder

http://www.mysql.com/doc/en/String_c...functions.html

und dann vielleicht was mit REGEXP... viel Spass.
eigentlich schade, oder ....
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #5 (permalink)  
Alt 22-01-2003, 10:38
oms
 Junior Member
Links : Onlinestatus : oms ist offline
Registriert seit: Dec 2002
Ort: Berlin
Beiträge: 179
oms ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@Abraxax
Danke für die Bemühungen.

Mit FIND_IN_SET könnte ich das hinbiegen. Muß ich halt nur die "-" durch "," ersetzen. Das müßte pfunzen, da mir die letzte Zahl im String zur Verfügung steht.

Aber so richtig glücklich bin ich damit auch nicht.

Laßt meinen Hoster bloß möglichst schnell auf MySQL >=4.0 updaten. Dann könnte ich endlich Unterabfragen benutzen und bräuchte nicht diese abgef**kte Variante wählen. Aber darauf kann ich wohl noch ein kleine Ewigkeit warten...

oms
__________________
{brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!
Mit Zitat antworten
  #6 (permalink)  
Alt 22-01-2003, 10:49
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

deine suche war ja bisher nach -

wenn du FIND_IN_SET nimmst, musst du ja die zahlen durch komma ersetzen, wenn ich das richtig verstanden habe, um auf die 4 zu kommen.
das ist es besitmmt auch nciht. oder?
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #7 (permalink)  
Alt 22-01-2003, 11:01
oms
 Junior Member
Links : Onlinestatus : oms ist offline
Registriert seit: Dec 2002
Ort: Berlin
Beiträge: 179
oms ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ob 5 oder 4 ist eigentlich egal, Hauptsache der String mit einem "," mehr bekommt ne höhere Zahl. Im Prinzip hab ich eine Zeichenkette bestehend aus Zahlen, die durch irgendein Zeichen getrennt werden. Gegeben ist mir immer die letzte Zahl. Ich brauche nur die Anzahl der Zahlen im String.

Müßte eigentlich klappen...
Code:
SELECT FIND_IN_SET("98","1,3,7,12,98"); #Beispiel von oben
erhofftes Resultat: 5
__________________
{brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!
Mit Zitat antworten
  #8 (permalink)  
Alt 22-01-2003, 11:37
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

ok. mir war nicht bekannt, das du IMMER DIE LETZTE zahl kennst.

so müsste es klappen, aber nur, wenn dir wirklich die letzte zahl im SET bekannt ist......
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #9 (permalink)  
Alt 22-01-2003, 12:02
oms
 Junior Member
Links : Onlinestatus : oms ist offline
Registriert seit: Dec 2002
Ort: Berlin
Beiträge: 179
oms ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Jo, es pfunzt. Jetzt kann ich endlich dieses blöde Menü fertigstellen.

thx@Abraxax

Gruß oms
__________________
{brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!
Mit Zitat antworten
  #10 (permalink)  
Alt 22-01-2003, 13:40
Campus
 PHP Junior
Links : Onlinestatus : Campus ist offline
Registriert seit: Jul 2002
Ort: D
Beiträge: 842
Campus ist zur Zeit noch ein unbeschriebenes Blatt
Campus eine Nachricht über ICQ schicken
Standard

also wer jetzt das nicht nur mit komma trennt, der kann auch diese variante in betracht ziehen:
select (length(spalte)-length(replace(spalte,'-',''))) as zeichenanzahl...
Mit Zitat antworten
  #11 (permalink)  
Alt 22-01-2003, 13:49
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also für das Problem ist doch find_in_set völlig falsch, viel zu viele prämissen.
Die Lösung von Campus erscheint viel logischer, nur eine prämisse: - wird nur als trennzeichen verwendet.
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #12 (permalink)  
Alt 22-01-2003, 13:51
oms
 Junior Member
Links : Onlinestatus : oms ist offline
Registriert seit: Dec 2002
Ort: Berlin
Beiträge: 179
oms ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Aber die Zahlen im String können doch unterschiedlich viele Ziffern haben...
__________________
{brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!
Mit Zitat antworten
  #13 (permalink)  
Alt 22-01-2003, 13:58
Campus
 PHP Junior
Links : Onlinestatus : Campus ist offline
Registriert seit: Jul 2002
Ort: D
Beiträge: 842
Campus ist zur Zeit noch ein unbeschriebenes Blatt
Campus eine Nachricht über ICQ schicken
Standard

wat ?
Mit Zitat antworten
  #14 (permalink)  
Alt 22-01-2003, 14:00
oms
 Junior Member
Links : Onlinestatus : oms ist offline
Registriert seit: Dec 2002
Ort: Berlin
Beiträge: 179
oms ist zur Zeit noch ein unbeschriebenes Blatt
Standard


Sorry, der Groschen ist eben reichlich spät gefallen. Nicht mein Tag heute. Die Methode ist super. *peinlich*
Danke
__________________
{brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!
Mit Zitat antworten
  #15 (permalink)  
Alt 22-01-2003, 14:27
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

da muss ich oms beipflichten. die variante von campus ist wohl der idealste weg.

und wieder was gelernt ...
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


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

10 Gründe, warum das Todesstern-Projekt gescheitert ist
10 Gründe, warum das Todesstern-Projekt gescheitert istDie Todesstern-Projekte sind spektakulär gescheitert. Lernen Sie von den Fehlern des Imperiums und bewahren Sie Ihre Projekte davor, der dunklen Seite der Macht zu verfallen!

24.11.2020 | Berni

Projektmanagement-Grundlagen Was ist ein PMO?
Projektmanagement-Grundlagen Was ist ein PMO?In unserer Infografik erfahrt ihr es.

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

21.10.2020 Berni | Kategorie: PHP/ Anzeigenmarkt
Sendeplan Script inkl. Wunsch- und Grußbox + Kick-System + Bewerbungssystem

Das professionelle Sendeplan PHP Script inkl. Wunsch- und Grußbox + Kick-System für dein Webradio. Der übersichtliche Sendeplan bietet deinen Moderatoren und Zuhörern die perfekte Übersicht der aktuellen Shows! Du kannst nicht nur Sendungen eintragen, s

20.10.2020 drcomputer | Kategorie: PHP/ Web Radio
Newsmanager 2

Der Newsmanager 2 ist sehr Vielfältig und kann News schreiben, Newsletter versenden und RSS Feeds in einem erzeugen.

20.10.2020 Stephan_1972 | Kategorie: PHP/ News
 Alle PHP Scripte anzeigen

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