| Alain_Aubert |
Geschrieben am: Mo 11.02.2008, 17:08
|
||||
|
Ayom Slave Gruppe: Admin Beiträge: 4794 Mitglied seit: 25.09.2003 |
Ich suche
um die Zeilen zu holen, welche eine Zahl (und genau eine Zahl) in einem Varchar Feld enthält. Irgendwie steh ich aber auf dem Schlauch, kann mich nicht an die ensprechende Fkt erinnern und finde sie in der Manual nicht. Also dachte ich, frag ich mal euch Gelöst hab ich es dann einfach mit abs(reason)>0; allerdings weiss ich nicht, wie Mysql mit abs(String) oder abs(null) umgeht (ich vermute 0 und null). Macht genau das was ich wollte, aber frustriert mich, dass den Namen der Mysql Funktion nicht gefunden habe. PS:
Vermute, Vermutung ist korrekt. Allerdings abs(String) ist >0 sobald String irgendetwas beinhaltet, was sich als Nümmerchen casten lässt. |
||||
![]() |
| Maik power-labels AG |
#2 Geschrieben am: Mo 11.02.2008, 18:50 (+01:41)
|
||
![]() AyomRank 5 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 479 Mitglied seit: 16.03.2006 |
Ich wüsste dafür momentan auch nur REGEXP bzw. RLIKE... zB:
Weiß nicht ob MySQL auch die shortcuts für Characterklassen macht, dann könnte man auch \d nehmen -------------------- |
||
![]() |
| jAuer Jürgen Auer - freiberufl. Programmierer |
#3 Geschrieben am: Mo 11.02.2008, 20:30 (+01:39)
|
||
|
AyomRank 9 Gruppe: Experten Entwicklung Beiträge: 2299 Mitglied seit: 4.02.2006 |
Am Wochenende hatte ich mir für diesen Thread eine mySql-Hilfe runtergeladen. Das kennt nicht die MSSQL-Funktion ISNUMERIC, die 0 oder 1 liefert, auch nichts analoges. Dafür kann man aber mit RegEx-Ausdrücken so etwas machen: [:character_class:] mit digit für Ziffernzeichen. Geschätzt:
-------------------- Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.
server-daten - die Single-Data-Solution: Web-Datenbanken als Online - CRM - Lösung. Ihre Geschäftsprozesse entscheiden, was Ihre Online-Datenbank macht. Sie konzentrieren sich auf Ihr Kerngeschäft - die Datenbank funktioniert. |
||
![]() |
| faris |
#4 Geschrieben am: Mo 11.02.2008, 20:50 (+00:20)
|
|
AyomRank 4 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 154 Mitglied seit: 16.02.2006 |
Das Problem bei abs() wird sein, dass abs(0) == 0 ist, "0" ist aber dennoch eine Zahl ;-)
Edit: Gerade gefunden: WHERE CONVERT(SomeColumn, SIGNED INTEGER) IS NOT NULL oder gleich selbst eine Funktion schreiben: http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html |
![]() |
| Alain_Aubert |
#5 Geschrieben am: Mo 11.02.2008, 20:56 (+00:06)
|
||
|
Ayom Slave Gruppe: Admin Beiträge: 4794 Mitglied seit: 25.09.2003 |
Danke für eure Antworten. Das Ding gibts also wirklich nicht. Das beruhigt mich, denn in solchen Situationen denk ich, alt zu sein... Eurer Lösung fehlte in meinem Fall noch die Überprüfung auf führende nullen. Allerdings war in meinem Fall abs() tatsächlich die beste, weil performanteste Lösung. Mit regexp geh ich grundsätzlich erst zu Werke, wenn die anderen Möglichkeiten ausgeschöpft sind. Meine Lösung war aber nur anwendwar, weil ich wusste, was die obere Schranke der Ints ist, und was in den Feldern drin steht.
Glaube nein, müsste nachschauen |
||
![]() |
| jAuer Jürgen Auer - freiberufl. Programmierer |
#6 Geschrieben am: Mo 11.02.2008, 21:14 (+00:17)
|
||||
|
AyomRank 9 Gruppe: Experten Entwicklung Beiträge: 2299 Mitglied seit: 4.02.2006 |
Ich weiß zwar nicht, wie mySql Fehler behandelt. Aber innerhalb des MSSQL crashen solche Aufrufe, weil die Ausdrücke nicht konvertierbar sind. Und damit wäre der Zweck verfehlt. Grade kommt mir eine 'dumme Lösung' ohne RegEx:
Die Ziffern 0 - 9 einfach ersetzen, zusätzlich wohl '.' - bleibt dann nix übrig, dann muß es eine Zahl sein. PS: Statt \d diese Konstruktion mit :digit: -------------------- Web-Anwendung 3.0: Ein Online-Kalender für Termine vieler Filialen.
server-daten - die Single-Data-Solution: Web-Datenbanken als Online - CRM - Lösung. Ihre Geschäftsprozesse entscheiden, was Ihre Online-Datenbank macht. Sie konzentrieren sich auf Ihr Kerngeschäft - die Datenbank funktioniert. |
||||
![]() |
| Alain_Aubert |
#7 Geschrieben am: Mo 11.02.2008, 21:43 (+00:29)
|
||||||||||||||
|
Ayom Slave Gruppe: Admin Beiträge: 4794 Mitglied seit: 25.09.2003 |
Hm. Die Funktion hat Mysql definiv auch. Aber imho ist convert("string", signed integer)=0. Also ist die Lösung falsch, der Ansatz aber goldrichtig. is not null => >0 und dann wäre es die korrekte Lösung für mein Problem. Aber jetzt die Frage, was macht der Bruder aus "78459a"?
=>
Also ist das auch keine Lösung. Wir sind wieder bei dem Regexp. =>
query() returned Fehler-Nummer und -Text. Du entscheidest dann was zu tun.
Das würde definiv Mysql nicht crashen, aber auch nicht wie intendiert funktionieren. Diene "dumme Lösung" hätte mir nicht geholfen, weil es auch Zeilen mit leeren Feldern gibt. Allerdings hätte man mit diesem Ansatz eine Lösung finden können. Also guter Ansatz. Aber vor diesem Problem werd ich nie wieder stehen, das war nur ne nachträgliche Normalisierungs-Aktion. Wenn man Zahlen reinschreibt, soll man auch Ints draufschreiben. PS: Oh Christian, Deinen Beitrag hab ich übersehen.
Das, und wie erwähnt abs("Du Gurke 34 Himmel")>0 Ich bin mit abs nur so gut gefahren, weil ich die Anzahl Ziffern zusätzlich eingrenzen konnte. Also Hatte das Problem shcon gelöst, als ich den Beitrag hier erstellt. Wollte aber meine Funktion zurück |
||||||||||||||
![]() |
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/22945
![]() |
![]() ![]() ![]() |
| Themen Titel | Autor | Views | Antworten | Letzte Aktion |
| Kaufen ein deutsche Website/Domain oder Text Link | günter31 | 257 | 6 | Fr 10.10.2008, 09:21 |
| Suche Freelancer: Ajax, XML, PHP, MySQL | omc | 146 | 2 | Mo 6.10.2008, 20:14 |
| Lösung für: Content Slider-Java Script-PHP-MySql | Antoine Johannes | 122 | 2 | Fr 26.09.2008, 12:54 |
| [S] Text. Thema SEO | Thomas G. | 85 | 0 | Mo 22.09.2008, 12:30 |
| [B] Text über Rechtschutz-Versicherungen | sylvia73 | 84 | 0 | Sa 20.09.2008, 16:29 |
| Pagerank 4 mit Null inhalt? | lordoliver | 715 | 17 | Sa 20.09.2008, 14:08 |
| PHP + MySQL 2 Fragen an euch | Coach | 152 | 1 | Do 18.09.2008, 10:52 |
| Guter Anbieter für Text/Bannerwerbung gesucht | fluchen_net | 293 | 9 | Mo 15.09.2008, 17:17 |
| PHP und MySQL Probleme | Swisstiger | 500 | 4 | So 14.09.2008, 22:23 |
| Von Datetime Feld nur Date anzeigen | retok | 160 | 4 | Sa 13.09.2008, 18:31 |
Anzeige - [Interessiert an einer Anzeige?]















