Dans MySQL, comment puis-je insérer 1 lors de la chaîne de valeur est 'true', 0 si faux, tout en préservant les valeurs null

Je suis en utilisant un INSERT requête qui SELECTs à partir d'un texte brut de base de données de plus de requête de base de données conviviale. Ce qui suit est énormément simplifié pour éviter toute confusion avec des informations inutiles, si j'ai simplifié trop loin pour plus de clarté, s'il vous plaît laissez-moi savoir et je vais modifier.

De la Source de données s'affiche comme suit:


    |    id (integer)    |    SomeCol (varchar)    |    BooleanCol (varchar)   |    
    ----------------------------------------------------------------------------
    |    1               |    'String Data'        |    'true'                 |
    |    2               |    'Other Data'         |    'false'                |

La table cible doit regarder comme suit après mon INSERT requête:


    |    id (integer)    |    SomeCol (varchar)    |    BooleanCol (tinyint(1))   |    
    -------------------------------------------------------------------------------
    |    1               |    'String Data'        |    1                         |
    |    2               |    'Other Data'         |    0                         |

Je suis à la recherche de quelque chose qui fonctionne plus ou moins comme ça, à l'emprunt d'un peu de syntaxe java:


    INSERT INTO target(SomeCol, BooleanCol) 
    SELECT SomeCol, (BooleanCol IS NOT NULL ? (BooleanCol == 'true' ? 1 : 0) : null) 
    FROM source

Noter que la syntaxe java présenté comme un exemple de ce que je veux est destiné à préserver nulls en tant que de besoin.

Aussi, alors je suis ici, si vous savez comment SELECT l'heure actuelle le timbre de MySQL, qui serait également utile.

OriginalL'auteur StormeHawke | 2013-03-28