有可能mysql使列标题像这样吗?

时间:2015-05-17 19:05:10

标签: mysql

---------------------
|      student      |
---------------------
|  name    |  age   |
---------------------
|  John    |   17   |
|  Tony    |   18   |

所以我希望列标题包含学生,姓名和年龄,就像上面的位置一样。

mysql可以吗?怎么样?

1 个答案:

答案 0 :(得分:0)

嗯......实际上你可以用MySQL做到这一点,但正如Aleksandar所提到的,你可以更好地控制你的服务器端脚本/编程语言,如PHP,C#/ .NET,Python等。

示例表

create table test (
  firstname varchar(15),
  lastname varchar(15)
);

存储例程/程序

虽然手动调整空间,测试,再次调整间距,测试等等都很繁琐,但你会发现MySQL可以进行一些格式化工作。

delimiter $$

drop procedure if exists test_print$$

create procedure test_print()
begin
    select '-----------------------------';
    select '          Students           ';
    select '-----------------------------';
    select '  First name      Last name  ';
    select '-----------------------------';
    select
        concat(
            lpad(rpad(firstname, 15, '.'), 17, '.'),
            ' ', lastname)
        from test;
end$$

delimiter ;

从命令行执行

-N开关忽略列标题。 -B进行批处理。 -e要求MySQL以单引号执行查询。

mysql -N -B -u username -p -e 'use schemaname; call test_print();'

<强>结果

-----------------------------
          Students
-----------------------------
  First name      Last name
-----------------------------
  John            Smith
  Matthew         Goldberg

正如您可能已经注意到的,尽管在MySQL中可能存在,但其他工具在报告和格式化方面可能比MySQL更好。