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]