2013-07-15 1 views
-3

MySQL 쿼리를 실행하고 쿼리 또는 별칭이 출력되지 않도록하려면 어떻게해야합니까? 별칭으로 ""(빈 문자열)을 시도했지만 빈 줄이 생겨 예상대로 결과를 얻지 못했습니다.쿼리 결과를 MySQL에만 표시

편집 :는 일부 코드 내가 출력으로 JSON 형식을 갖고 싶어

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 형식).

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 (...)"부분을 제거하고 만 출력으로 결과를 갖고 싶어.

+0

이미 시도한 코드를 게시 할 수 있습니까? – SteveP

+1

당신이 무슨 말을하고 있는지 전혀 모르겠습니다. 실제 코드를 보여줍니다. –

+0

코드를 추가 했으므로 이제는 분명히 알기를 바랍니다. – JohnTube

답변

8

만, 따라서 귀하의 MySQL의 클라이언트 다음과 같은 방법을 시작, 상자와 헤더없이 인쇄 된 쿼리의 결과를 원하는 : mysql -uroot -p -s -r -N.

이렇게하면 쿼리의 상자와 열 이름의 출력이 억제됩니다. 또한 -e 매개 변수를 사용하여 쿼리를 실행 한 다음 쿼리 결과를 stdout에 인쇄 한 후 mysql 클라이언트를 종료 할 수 있습니다.이 매개 변수는 스크립트에서 사용할 때 usefule입니다. 아래의 간단한 예제를 참조하십시오.

[[email protected] ~]# mysql -uroot -p******* -s -r -N -e "select 1+1" 
2 
[[email protected] ~]# 
+0

그것은 작동합니다. 감사. – JohnTube

0

결과 집합의 모든 열에 이름을 지정해야합니다. 그러나 원하는 모든 명시 적 (비어 있지 않은) 별칭으로 이름을 지정할 수 있습니다. SELECT Syntax 아래에 설명 된대로 :

select_exprAS 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' 
     ); 
+0

""(빈 문자열)을 이미 별칭으로 사용해 보았습니다. 나는 별칭을 원하지 않는다! 쿼리의 결과. – JohnTube

+0

@JohnTube : 왜 신경 썼 겠니? – eggyal

+0

출력을 압축 된 json 형식으로 다른 소프트웨어로 리디렉션하므로 빈 줄도 허용되지 않습니다! – JohnTube

관련 문제