-3

MySQL クエリを実行し、出力にクエリまたはエイリアスが含まれないようにする方法は? エイリアスとして "" (空の文字列) を試しましたが、空白行になってしまったため、期待どおりの結果が得られませんでした。

編集:いくつかのコードを追加

SELECT 
CONCAT("{\"counters\":{",
-- Total memory used calculation
    "\"mysql.total_memory\":",
    ((@@read_buffer_size + @@sort_buffer_size) * @@max_connections + @@key_buffer_size),",",
-- other monitored server status variables 
    GROUP_CONCAT(
        CONCAT("\"mysql.",LCASE(VARIABLE_NAME),"\":",VARIABLE_VALUE)
    )
,"}}")
FROM INFORMATION_SCHEMA.GLOBAL_STATUS
WHERE VARIABLE_NAME = "SLOW_QUERIES"
OR VARIABLE_NAME="Qcache_lowmem_prunes"
OR VARIABLE_NAME="SELECT_FULL_JOIN"
OR VARIABLE_NAME="SELECT_RANGE_CHECK"
OR VARIABLE_NAME="SELECT_SCAN"
OR VARIABLE_NAME="SELECT_RANGE";

出力としてjson形式が必要です。別のソフトウェアへの入力としてこれが必要です。このソフトウェアは、特に空行 (圧縮された json 形式) を受け入れません。

edit2:追加された出力

CONCAT("{\"counters\":{",

    "\"mysql.total_memory\":",
    ((@@read_buffer_size + @@sort_buffer_size) * @@max_connections + @@key_buffer_size),",",

    GROUP_CONCAT(
        CONCAT("\"mysql.",LCASE(VARIABLE_NAME),"\":",VARIABLE_VALUE)
    )
,"}}")
{"counters":{"mysql.total_memory":39108608,"mysql.qcache_lowmem_prunes":0,"mysql.select_full_join":0,"mysql.select_range":0,"mysql.select_range_check":0,"mysql.select_scan":84,"mysql.slow_queries":0}}

「CONCAT(...)」部分を削除し、結果のみを出力したい。

4

2 に答える 2

0

結果セットのすべての列に名前を付ける必要があります。ただし、任意の明示的な (空ではない) エイリアスで名前を付けることができます。SELECTSyntaxの下に記載されているように:

select_exprを使用してエイリアスを指定できます。AS alias_name

したがって、あなたの場合:

SELECT CONCAT(
         '{"counters":{',
           -- Total memory used calculation
           '"mysql.total_memory":', (
                (@@read_buffer_size + @@sort_buffer_size) * @@max_connections
               + @@key_buffer_size
             ),',',

           -- other monitored server status variables 
           GROUP_CONCAT('"mysql.',LCASE(VARIABLE_NAME),'":',VARIABLE_VALUE),
         '}}'
       ) AS my_column   -- assign your chosen alias here <===================
FROM   INFORMATION_SCHEMA.GLOBAL_STATUS
WHERE  VARIABLE_NAME IN (
         'SLOW_QUERIES',
         'Qcache_lowmem_prunes',
         'SELECT_FULL_JOIN',
         'SELECT_RANGE_CHECK',
         'SELECT_SCAN',
         'SELECT_RANGE'
       );
于 2013-07-15T14:55:20.623 に答える