【问题标题】:phpMyAdmin wrong results when using CONCAT使用 CONCAT 时 phpMyAdmin 出现错误结果
【发布时间】:2014-04-16 14:04:20
【问题描述】:

我正在使用 phpMyAdmin 的 4.1.13 版本。请参考下表和数据:

CREATE TABLE `test` (
  `testcol` mediumint(6) NOT NULL,
   PRIMARY KEY (`testcol`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `test` (`testcol`) VALUES ('1'), ('2'), ('3');

以下查询似乎返回了错误的结果:

SELECT CONCAT(testcol), testcol FROM `test` WHERE 1;

CONCAT(testcol)   testcol
---------------   -------
             31         1
             32         2
             33         3

我在这里做错了什么还是这是一个 PMA 错误?直接在 MySQL 的命令行客户端中运行查询会返回预期的结果。

结果应该是:

CONCAT(testcol)   testcol
---------------   -------
              1         1
              2         2
              3         3

【问题讨论】:

  • 这里的CONCAT函数是什么意思,通常你用两个参数来使用它
  • 我试过你的代码。正如你所期望的那样工作正常。我认为这可能是版本问题。
  • 更新phpMyAdmin的版本,因为你的代码没有问题。
  • @ktaria 为简单起见,我将 CONCAT 与单个参数一起使用,以将 MySQL 的结果与 PMA 的结果进行比较。带有多个参数的 CONCAT 有同样的问题,返回垃圾。
  • @LucasHenrique 这个版本,4.1.13 是最新的稳定版本。

标签: mysql phpmyadmin concat


【解决方案1】:

试试这个:

SELECT CONCAT(testcol), testcol FROM `test` WHERE testcol=1;

结果:

CONCAT(testcol)   testcol
---------------   -------
             31         1

【讨论】:

  • 你有没有检查我的答案
  • 同样的事情 - CONCAT(testcol) 仍然返回错误的值 31
  • @Dude 你想转换成字符串吗?
  • @h2ooooooo 不,我只是想将像“teststring”这样的字符串与每一行的值连接起来。 SELECT CONCAT("teststring", testcol) FROM test WHERE testcol=1 返回74657374737472696e6731
【解决方案2】:

显然 4.1 版需要 MySQL 5.5+ 版

【讨论】:

    猜你喜欢
    • 2016-12-25
    • 2016-03-02
    • 1970-01-01
    • 2017-10-22
    • 2019-03-28
    • 2020-09-09
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    相关资源
    最近更新 更多