Richard Mixon (qwest) wrote:

Harald Fuchs wrote:

In article <[EMAIL PROTECTED]>,
Michael Stassen <[EMAIL PROTECTED]> writes:


Richard Mixon (qwest) wrote:

I run some mysql command files (just SQL statements in a file I read
from standard input) and need to place some annotiations/comments
in the output. If I place standard SQL comments ("-- comment text")
or MySQL comments ("# comment text") they do not show up in the
mysql client output. Well, in a way that makes sense - they are
"comments".
I have tried using "select ' comment text' ;" and that works, but I
get many, many lines instead of my one simple annotation - e.g.:
-------------- select "First comment ..."
--------------
+-------------------+

First comment ... |

+-------------------+

First comment ... |

+-------------------+ 1 row in set (0.00 sec) Any/all ideas are appreciated - Richard


SELECT "First comment ...";

will give exactly the output you show, but

SELECT "First comment ..." FROM sometable;

will return that string once for each row of the table.  Is that what
you're doing?

I guess he's talking about the column headers produced by the "mysql" client program. These can be suppressed by using "mysql -N".


Michael/Harald,

Thanks for the tip. But:

1) Yes, I am just issuing: SELECT "First comment ...";
and
2) The problem is that instead of getting a single line of text (i.e. my
"annotation/comment"), I get many, for example the command "select
"COMMENT 3";" produces the following (even using the -N flag when I
startup mySQL):
  --------------
  SELECT "COMMENT 3"
  --------------

  +-----------+
  | COMMENT 3 |
  +-----------+
  1 row in set (0.00 sec)
The problem with "-N" is that is suppresses all of the headers. What I
really need is an "echo" or "print" command.

The idea is to guide the reader of the mysql client output with some
comments. The SQL might look like the following:
  SELECT "The following output should only contain two rows for status
...";
  SELECT status,count(*) FROM PoClass GROUP BY status;
  SELECT "The following output should only contain three rows for status
...";
  SELECT status,count(*) FROM PoClassMeasurement GROUP BY status;

Thank you - Richard

Well, it's not exactly what you want, but you could use an alias to give each comment a standard header:


  SELECT 'The following output should only contain two rows for status.'
  AS COMMENT;

+---------------------------------------------------------------+
| COMMENT                                                       |
+---------------------------------------------------------------+
| The following output should only contain two rows for status. |
+---------------------------------------------------------------+
1 row in set (0.00 sec)

You still get some extra lines, but perhaps that looks a little better. You could also change the alias according to the type of comment:

  SELECT 'The following output *must* contain only two rows!'
  AS `WARNING!`;

+----------------------------------------------------+
| WARNING!                                           |
+----------------------------------------------------+
| The following output *must* contain only two rows! |
+----------------------------------------------------+
1 row in set (0.00 sec)

Michael


-- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]



Reply via email to