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 中的数字,则可以使用 cast。

试试这个:

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 回答