Spalte in boolean umwandeln

jetwork

Fleissiger Benutzer
Beiträge
97
Hallo Zusammen,


In meiner MySQL-Datenbank habe ich eine Spalte welche für jeden Eintrag entweder ja oder nein beinhaltet. Ich möchte diese Spalte in Boolean umwandeln. Wie vermutet Jas sollen in wahr und Neins in falsch umgewandelt werden. Wie geht das überhaupt mit den Sql Abfragen?


Danke im Voraus
 
Werbung:
Du legst eine neue Spalte an, machst ein UPDATE auf die Tabelle und setzt die neue Spalte = 1 wo die alte Spalte = Ja ist und das gleiche machst du für nein Werte. Dann löscht (DROP) du die alte Spalte.
 
Hallo Zusammen,


In meiner MySQL-Datenbank habe ich eine Spalte welche für jeden Eintrag entweder ja oder nein beinhaltet. Ich möchte diese Spalte in Boolean umwandeln. Wie vermutet Jas sollen in wahr und Neins in falsch umgewandelt werden. Wie geht das überhaupt mit den Sql Abfragen?


Danke im Voraus

In PostgreSQL ginge es so:

Code:
test=# create table jetwork (ja_nein text);
CREATE TABLE
Time: 2,444 ms
test=*# insert into jetwork values ('ja');
INSERT 0 1
Time: 0,254 ms
test=*# insert into jetwork values ('nein');
INSERT 0 1
Time: 0,152 ms
test=*# insert into jetwork values ('vielleicht');
INSERT 0 1
Time: 0,127 ms
test=*# alter table jetwork alter column ja_nein type bool using (case when ja_nein = 'ja' then true when ja_nein = 'nein' then false else null end);ALTER TABLE
Time: 3,540 ms
test=*# \d jetwork
  Table "public.jetwork"
 Column  |  Type  | Modifiers
---------+---------+-----------
 ja_nein | boolean |

test=*# select * from jetwork ;
 ja_nein
---------
 t
 f

(3 rows)

Vielleicht geht es ja in MySQL ähnlich.
 
Ich habe nie erwartet dass ein boolean nicht existieren würde. Ich dachte es gibt sowieso ein Datentyp Boolean die ich nicht finden kann :).
Wenn man Anfänger ist, denkt man leider immer so :D

Du must Dich nicht entschuldigen, Du denkst ja richtig. Nur ist MySQL offenbar nicht das richtige für Dich, Du wärst mit PostgreSQL besser bedient. Das hat sehr viele und sehr praktische Datentypen, von einfachen BOOL bis zu komplexen RANGE-Typen. Und es ist erweiterbar, so wie es PostGIS macht, welches ein-, zwei-, drei- und vierdimensionale Datentypen und dazu passende Funktionen und Indexe etc. definiert.
 
In Oracle gibt es auch kein Boolean. Das hat einfach den grund das die Zahlen 1 und 0 aus binärer Sicht das selbe bedeuten wie TRUE und FALSE :)

Das macht es weder besser noch ist es richtig.

Code:
mysql> create table bla(id int, b boolean);
Query OK, 0 rows affected (0.15 sec)

mysql> insert into bla values (1,0);
Query OK, 1 row affected (0.00 sec)

mysql> insert into bla values (2,2);
Query OK, 1 row affected (0.00 sec)

mysql> insert into bla values (3,3);
Query OK, 1 row affected (0.00 sec)

Das ist halt einfach nur falsch.
 
Werbung:
Zurück
Oben