1

いくつかの値を連結しようとすると、MySQL 5.5.27 を使用してエラーが発生し続けます。たくさんの文字セットの回答を検索して見ましたが (これは確かに頭上の TAD です)、すべてのテーブルを文字セットに変換しましたが utf8-unicode-ciそれでもエラーが発生します。

確かにこれらの値を連結する方法はありますが、その方法がわかりません。私は、MySQL に比較的慣れていない Oracle 担当者です。

SQL行は次のとおりです。

concat(pl.last_name,'-',format(money,0))

私は得る:

#1270 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT), (utf8_unicode_ci,COERCIBLE), (utf8_unicode_ci,COERCIBLE) for operation 'concat'

何か案は?

4

1 に答える 1

2

money が実際に VARCHAR 内の数値である場合は、キャストを使用できます。

これを試して:

concat_ws(pl.last_name,'-',cast(money AS unsigned)); // This is with decimals.
concat(`pl.last_name,'-',substring_index(money,',',1)) // Without decimals. If you use . i.e. the American currency notation you can substitute , with an .   

編集

最初に試してください concat(pl.last_name,'-',format(money,0)):

これは、使用できる非常に基本的な php コードです。

<?php

function selecting_data(){

    $host = "host";
    $user = "username";
    $password = "password";
    $database = "database";
    $charset = "utf8";

    $link = mysqli_connect($host, $user, $password, $database);
    mysqli_set_charset($charset, $link);
    IF (!$link) {
        echo('Unable to connect to the database!');
    } ELSE {


        $query = "SELECT lastname, format(money,0) FROM mytable"; //Select query
        $result = mysqli_query($link, $query);
        while ($rows = mysqli_fetch_array($result, MYSQLI_BOTH)){
            echo $rows['lastname']."<br>".$rows['money'] ; 
        }
    }
    mysqli_close($link);


}
?>

<html>
<head><title>title</title></head>
<body>
<?PHP echo selecting_data(); ?>
</body>
</html>
于 2013-02-10T23:28:26.713 に答える