Nachtrag:
Sorry @ Admins, hatte vergessen [MYSQL] vor den Thread zu machen.
Hi,
Der Import von CSV-Daten in ein BIT-Field macht Probleme, deshalb habe ich das BIT-Field auf VARCHAR(8) umgestellt.
Der Import klappt dann auch und es steht z.B. "00001000" drin.
Das Problem ist aber, dass das ganze als 1000 interpretiert wird und nicht als 8 (Binär zu Dezimal).
Gibt es eine Möglichkeit mit MYSQL einen String / Feldinhalt als Binärcode zu interpretieren.
Also das die 00001000 bei CONVERT(feldname, DECIMAL) in 8 gewandelt wird?
Im aktuellen Fall passiert nämlich gar nichts, da die 00001000 in 1000 gewandelt wird
Für mich gibt es jetzt zwei Lösungsmögllickeiten.
Entweder einen SQL-Befehl finden, der das Problem löst,
oder für den CSV-Import ein eigenes Script zu schreiben,
das es mir ermöglicht den Binärcode in BIT-Fields zu schreiben, statt in VARCHAR-Fields.
Vielleicht hat jemand von euch eine Idee.
Grund der Spielerei ist, dass ich z.B. folgendes machen möchte:
Werte:
10001000
11000000
Abfrageschlüssel:
10000000
Rauswerfen soll er mir dann (via | (OR) binärvergleich):
10001000
11000000
Beim Abfrageschlüssel:
01000000
Soll aber nur kommen:
11000000
In meinem eigenen Testszenario, ohne CSV Import und mit BIT-Fields, geht das ganze auch, z.B. mit folgendem Befehl:
Die 8 wird in dem Fall vom PHP Script geliefert durch bindec("00001000");
matchcode1 ist das BIT-Field in der Datenbank.
00001000 respektive 8 ist der Abfrageschlüssel.
Das Ganze ist etwas kompliziert zu beschreiben
Sollten Fragen bestehen, ich erläutere bestimmte Aspekte gerne genauer.
MfG,
tec
Sorry @ Admins, hatte vergessen [MYSQL] vor den Thread zu machen.
Hi,
Der Import von CSV-Daten in ein BIT-Field macht Probleme, deshalb habe ich das BIT-Field auf VARCHAR(8) umgestellt.
Der Import klappt dann auch und es steht z.B. "00001000" drin.
Das Problem ist aber, dass das ganze als 1000 interpretiert wird und nicht als 8 (Binär zu Dezimal).
Gibt es eine Möglichkeit mit MYSQL einen String / Feldinhalt als Binärcode zu interpretieren.
Also das die 00001000 bei CONVERT(feldname, DECIMAL) in 8 gewandelt wird?
Im aktuellen Fall passiert nämlich gar nichts, da die 00001000 in 1000 gewandelt wird
Für mich gibt es jetzt zwei Lösungsmögllickeiten.
Entweder einen SQL-Befehl finden, der das Problem löst,
oder für den CSV-Import ein eigenes Script zu schreiben,
das es mir ermöglicht den Binärcode in BIT-Fields zu schreiben, statt in VARCHAR-Fields.
Vielleicht hat jemand von euch eine Idee.
Grund der Spielerei ist, dass ich z.B. folgendes machen möchte:
Werte:
10001000
11000000
Abfrageschlüssel:
10000000
Rauswerfen soll er mir dann (via | (OR) binärvergleich):
10001000
11000000
Beim Abfrageschlüssel:
01000000
Soll aber nur kommen:
11000000
In meinem eigenen Testszenario, ohne CSV Import und mit BIT-Fields, geht das ganze auch, z.B. mit folgendem Befehl:
Code:
SELECT id FROM test WHERE CONVERT(matchcode1, DECIMAL) | 8 = 8 LIMIT 1
Die 8 wird in dem Fall vom PHP Script geliefert durch bindec("00001000");
matchcode1 ist das BIT-Field in der Datenbank.
00001000 respektive 8 ist der Abfrageschlüssel.
Das Ganze ist etwas kompliziert zu beschreiben
Sollten Fragen bestehen, ich erläutere bestimmte Aspekte gerne genauer.
MfG,
tec
Zuletzt bearbeitet: