programing

mysql 셸 내의 테이블 줄 없이 쿼리 결과 표시(비표 출력)

lovejava 2023. 10. 21. 09:49

mysql 셸 내의 테이블 줄 없이 쿼리 결과 표시(비표 출력)

mysql shell 내에 아래와 같은 쿼리 결과를 표시할 수 있습니까?

mysql> select code, created_at from my_records;
    code         created_at
1213307927  2013-04-26 09:52:10
8400000000  2013-04-29 23:38:48
8311000001  2013-04-29 23:38:48
3 rows in set (0.00 sec)

대신에

mysql> select code, created_at from my_records;
+------------+---------------------+
|     code   |          created_at |
+------------+---------------------+
| 1213307927 | 2013-04-26 09:52:10 |
| 8400000000 | 2013-04-29 23:38:48 |
| 8311000001 | 2013-04-29 23:38:48 |
+------------+---------------------+
3 rows in set (0.00 sec)

출력물을 복사해서 다른 툴에 붙여넣어야 하는 지루한 작업이 있어서 물어보는 이유입니다.

--raw, -r

표 출력의 경우 열 주변의 "상자"를 사용하면 하나의 열 값을 다른 열 값과 구별할 수 있습니다.표가 아닌 출력(예: 배치 모드에서 생성되거나 --batch 또는 --silent 옵션이 제공되는 경우)의 경우 특수 문자가 출력에서 빠져나가 쉽게 식별할 수 있습니다.새 줄, 탭, NUL, 백슬래시는 \n, \t, \0, \\으로 적습니다.--raw 옵션은 이 문자 탈출을 사용 불가능으로 설정합니다.

다음 예제에서는 표식 출력과 비표식 출력, 탈출을 비활성화하기 위한 원시 모드 사용을 보여 줍니다.

% mysql
mysql> SELECT CHAR(92);
+----------+
| CHAR(92) |
+----------+
| \        |
+----------+

% mysql --silent
mysql> SELECT CHAR(92);
CHAR(92)
\\

% mysql --silent --raw
mysql> SELECT CHAR(92);
CHAR(92)
\

MySQL 문서에서

정확히 필요한 것은 아니지만 유용할 수도 있습니다.쿼리 끝에 \G 추가

select code, created_at from my_records\G;

쿼리 결과는 다음과 같습니다.

*************************** 1. row ***************************
 code: 1213307927
 created_at: 2013-04-26 09:52:10
*************************** 2. row ***************************
 code: 8400000000  
 created_at: 2013-04-29 23:38:48

원라이너

mysql -u YOURUSER -p --password=YOURPASSWORD -s -r -e "show databases;"        
mysql -u root -p --password=abc12345 -s -r -e "show databases;"

당신은 통과해야 합니다.-s매개변수mysql -s.

mysql --skip-열-names --silent --raw --execute "select * from someone;"

사용자의 기본 옵션으로 설정하려면 ~/.my.cnf skip_column_names silent raw에 다음을 추가합니다.

이 문제를 해결했지만 concat_ws를 사용하여 결과를 함께 결합한 후 공백을 추가합니다(첫 번째 인수).

select concat_ws (' ',ipNetFull,ipUsage,broadcast,gateway) from ipNets;

주변 테이블 없이 MySQL 클라이언트 출력을 얻으려면 mysql 클라이언트 대신 linux 명령줄에서 쿼리를 실행할 수 있습니다.

$ echo "SELECT CONCAT_WS(' ','DROP TABLE',TABLE_NAME,';') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%';" | mysql dbname

bonth: sort 등을 통해 출력을 파이프링하거나, 다시 mysql에 넣을 수도 있습니다.

$ echo "SELECT CONCAT_WS(' ','DROP TABLE',CONCAT_WS('.',TABLE_SCHEMA,TABLE_NAME),';') FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE 'i\'m\_not\_that\_mean';" | mysql | mysql;

빠른 해결 방법:

최신 MySQL 클라이언트(어떤 버전인지 확실하지 않음)를 사용하여 PAGER 지시어를 사용하여 결과를 조작할 수 있습니다.데이터를 흐리지 않으려면 이러한 식을 변경해야 할 수도 있습니다.

> PAGER sed 's/|//g'
PAGER set to 'sed 's/|//g''
barracuda@db-ess-rw.us-east-2.ess.aws.vt2.com [ess]
> SELECT 'row1_col1' AS column1, 'row1_col2' AS column2
  UNION ALL SELECT 'row2_col1', 'row2_col2';
+---------+---------+
 column1  column2 
+---------+---------+
 row1_col1  row1_col2 
 row2_col1  row2_col2 
+---------+---------+
2 rows in set (0.00 sec)

이 작업을 수행하기 전에 PAGE의 현재 값을 확인할 수 있습니다.

> PAGER
PAGER set to 'less'

'less'를 PAGER로 사용하도록 재설정하려면 다음과 같이 하십시오.

> PAGER less
PAGER set to 'less'

PAGER로 더 재미있는 점:

https://www.percona.com/blog/2013/01/21/fun-with-the-mysql-pager-command/

질문과 답변에 너무 혼란스러웠습니다. ran sql과 결과는 줄이나 비표 형식 없이 계속 표시되었습니다.나중에 쿼리 공간을 마우스 오른쪽 버튼으로 클릭하고 "결과 대상" > "결과 대상"으로 이동할 때 옵션이 있음을 알게 되었습니다.표 형식으로 다시 설정해야 합니다.

제가 경험하고 있던 형식인 "문자로 결과"에 대한 옵션도 있습니다.

:)!

언급URL : https://stackoverflow.com/questions/18630499/display-query-results-without-table-line-within-mysql-shell-nontabular-output