3

私は非常に明確になります:MySQLでビューを作成するための解決策は何ですか

私の SQL コードは次のようなものです (ポルトガル語の単語がいくつかあります)。データベースのデフォルトの照合順序はlatin1_swedish_ciです。

CREATE VIEW v_veiculos AS
SELECT
    v.id,
    v.marca_id,
    v.modelo,
    v.placa,
    v.cor,
    CASE v.combustivel
        WHEN 'A' THEN 'Álcool'
        WHEN 'O' THEN 'Óleo Diesel'
        WHEN 'G' THEN 'Gasolina'
        ELSE 'Não Informado'
    END AS combustivel,
    marcas.marca,
    /*I think that the CONCAT and COALESCE below causes this error, when the next line the view works fine*/
    CONCAT(marca, ' ', v.modelo, ' - Placa: ', v.placa, ' - Combustível: ', COALESCE(v.combustivel, 'Não informado')) AS info_completa
FROM veiculos v
LEFT JOIN
    marcas on(marcas.id = v.marca_id);

エラーの原因は、完全なエラーの説明が教えてくれるように、合体および/または連結を使用しているためだと思います:操作「合体」の照合(latin1_swedish_ci、IMPLICIT)および(utf8_general_ci、COERCIBLE)の不正な混合

4

4 に答える 4

6

CAST()文字列を別の文字セットに変換するために使用することもできます。構文は次のとおりです。

CAST(character_string AS character_data_type CHARACTER SET charset_name)

例えば:

      SELECT CAST(_latin1'test' AS CHAR CHARACTER SET utf8);

代替 : 使用CONVERT(expr USING transcoding_name)

于 2012-12-28T12:39:48.523 に答える
0

これは実際には MySQLのバグです。

もしかしたら、MySQL の最新バージョンに更新できますか?

于 2012-12-28T12:26:50.973 に答える