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, 15: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
  #2 (permalink)  
Alt 21-01-2003, 23: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, 08: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, 09: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, 09: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, 09: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, 10: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, 10: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, 11: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, 12: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, 12: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, 12: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, 12: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, 13: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, 13: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

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

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


 

Aktuelle PHP Scripte

Newsmanager

Der Newsmanager ist ein Newssystem und Newsletter in einem. Mit WYSIWYG Editor und E-Mail import aus einer bestehenden MySql Datenbank sowie dynamische Kategorien / Themen Filter.

11.09.2019 Stephan_1972 | Kategorie: PHP/ News
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

11.09.2019 Stephan_1972 | Kategorie: PHP/ Webservice
ContentLion - Open Source CMS ansehen ContentLion - Open Source CMS

ContentLion ist ein in PHP geschriebenes CMS, bei dem man Seiten, Einstellungen usw. in Ordnern lagern kann

22.08.2019 stevieswebsite2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

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