3

これは皮肉なことに、1) concat(charfield, doublefield) が機能するため (連結されるフィールドの 1 つが数値であってもかまいません)、2) mysql リファレンスが次のように示しているためです: CONCAT(str1,str2, ...) CONCAT および FORMAT のプロトタイプとしては、次のようになります。結果を文字列" .

必死になって試してみselect concat(symbol, cast(format(closeprice,8) as char))ましたが、うまくいきました。だから、「なぜこの男は私たちの時間を無駄にしているのだろう。うまくいくものを見つけたのだ」と思うかもしれません。しかし、それは私には意味がないので、誰かがそれを解決できるかどうか疑問に思っていましたか?

4

3 に答える 3

4

1267 は不正な照合の組み合わせです。charfield の照合 (アルファベット順の並べ替え) と FORMAT から返される文字列の照合 (おそらく db サーバーのデフォルトの照合) は異なります。

列の照合またはサーバーの既定の照合を変更するか、キャストを実行します。

于 2009-10-07T20:13:34.090 に答える
1

私は今日同じ問題を抱えていましたが、これが私のために働いたものです:

クエリの一部:

CONCAT(payment_currency," ", CONVERT(FORMAT(payment_amount, 2) using utf8)) AS payment_gross_amount

結果:

PHP 1,250.00

誰かが同じ問題に遭遇した場合に備えて。:)

于 2013-11-05T07:49:49.930 に答える
0

試す:

select concat(symbol, CONVERT(cast(format(closeprice,8) as char) USING utf8) COLLATE utf8_bin))

CONCAT(utf8_general_ci, utf8_bin) のような CONCAT 関数で文字セットエンコーディングを混在させることはできないため。

于 2012-11-21T12:37:34.977 に答える