Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi String nach Integer wandeln mit MySql (https://www.delphipraxis.net/164131-string-nach-integer-wandeln-mit-mysql.html)

DelTurbo 29. Okt 2011 20:36

Datenbank: MySql • Version: 5xx • Zugriff über: DirectMySql

String nach Integer wandeln mit MySql
 
Hi,
ich habe ein Feld mit Namen. Dort steht
CD 1
CD 2
CD ...
CD 10
CD 11
CD ...
CD 20
CD 21
usw.

Ich möchte die Sortiert ausgeben. Leider sieht das so aus.
CD 1
CD 10
CD 11
CD ...
CD 2
CD 20
CD 21
usw.

Ich habe nun alles durchsucht und leider nix gefunden. Ich denke ich müsste den SUBSTR nach INTEGER wandeln. Nach HEX,BIN usw. klappt es. Aber INTEGER finde ich nirgends.

SELECT Name From DrvTable ORDER BY SUBSTR(Name,5,2); <-- So könnte man es machen. Leider bleibt es ein String.

Wie kann ich das nach Integer Wandeln, damit er das "richtig" Sortiert.

Danke im voraus

Bummi 29. Okt 2011 20:44

AW: String nach Integer wandeln mit MySql
 
Ich kenne MySQL kaum aber in der Art
ORDER BY SUBSTR(Name,1,2),Cast(SUBSTR(Name,4,2) as Int)
könnte auch da gehen ...

mkinzler 29. Okt 2011 20:45

AW: String nach Integer wandeln mit MySql
 
†Versuch es mal mit CAST()

himitsu 29. Okt 2011 20:53

AW: String nach Integer wandeln mit MySql
 
Das substr+cast wurde ja schon genannt, aber eventuell gibt es auch NatSort (natural) für MySQL?

[add]
Bei Google suchennatsort on MySQL

DelTurbo 30. Okt 2011 08:46

AW: String nach Integer wandeln mit MySql
 
Hi,

@Bummi, leider geht das nicht. Hatte ich auch schon versucht. Wie gesagt, nach BIN oder HEX bekomme ich es gewandelt, aber nicht nach int.

Code:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INT)
LIMIT 0, 30' at line 1
@himitsu,
das gibt es leider nur in PHP.

himitsu 30. Okt 2011 08:56

AW: String nach Integer wandeln mit MySql
 
Bei Google suchenMySQL cast integer / Bei Google suchenMySQL cast int
http://dev.mysql.com/doc/refman/5.0/...functions.html
http://tracker.moodle.org/browse/MDL-11171
http://www.roseindia.net/sql/mysql-e...sql-cast.shtml

... AS SIGNED
... AS SIGNED INTEGER

DelTurbo 30. Okt 2011 09:13

AW: String nach Integer wandeln mit MySql
 
So geht es... mit CAST hatte ich schon versucht, aber immer als INT oder INTEGER oder BIGINT. Ich trööte....

Code:
SELECT Name FROM DrvTable ORDER BY CAST( SUBSTR( Name, 4, 2 ) AS UNSIGNED );
Vielen Dank

BUG 30. Okt 2011 09:18

AW: String nach Integer wandeln mit MySql
 
Das hier sieht auch gut aus: http://stackoverflow.com/questions/1...-sort-in-mysql

Aber was anderes: wenn da tatsächlich cd1 ... cd21, hdd1 ... hdd25, floppydisk1 ... floppydisk90 in deiner Datenbank steht, solltest du dringend das Datenbankschema verbessern. Das wäre so redundant das es wehtut.

DelTurbo 30. Okt 2011 09:30

AW: String nach Integer wandeln mit MySql
 
Zitat:

Zitat von BUG (Beitrag 1133505)
Aber was anderes: wenn da tatsächlich cd1 ... cd21, hdd1 ... hdd25, floppydisk1 ... floppydisk90 in deiner Datenbank steht, solltest du dringend das Datenbankschema verbessern. Das wäre so redundant das es wehtut.

Ne, das ist ein Feld wo auch andere sachen drinstehen. Über dieser tabelle gibt es noch eine art "container" der dort drauf zeigt. Aber das hier auszuführen würde den rahmen sprengen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz