2012-02-11 3 views
15

내가 명령 줄 인터페이스 (안 GUI 클라이언트)를 사용하여 MySQL의에서 테이블에 SELECT 쿼리를 실행하고있어 결과 : blog_entry FROM제한 길이는

SELECT *를;

blog_entry의 필드 중 하나는 'longtext'유형이며, 결과가 내 단말기에 표시 될 때 행 표시가 두 줄 이상 걸리는 긴 텍스트 조각입니다. 이것은 열을 쉽게 볼 수없는 디스플레이의보기 흉한 혼란을 야기합니다. 내 SELECT 쿼리에서 인쇄 된 행 결과가 새 행으로 넘치지 않도록 각 필드에 표시되는 문자 수를 제한하는 방법은 무엇입니까?

당신이 설명이 필요한 경우 알려 주시기 바랍니다 -

답변

25

사용의 MySQL의 SUBSTRING 기능을, documentation에 설명되어 있습니다. 좋아요 :

SELECT SUBSTRING(`text`, 1, 100) FROM blog_entry; 

첫 번째 100자를 선택하십시오.

+2

주위에 하나의 거꾸로 된 쉼표 'text'가 필드 이름 인 경우 'text'가 필요하지 않습니다. –

20

당신은 첫 번째 문자를 얻기 위해 LEFT() 기능을 사용할 수 있습니다 할께 응답 성 :

SELECT LEFT(LongField, 20) AS LongField_First20chars 
FROM ... 
+0

은 SQLite에서 작동하지 않습니다 :-( –

+5

@ValentinHeinitz? 질문은 SQLite가 아닌 MySQL에 관한 것이고, SQLite는 substr() 함수가 있으므로 Oldskool의 대답처럼 사용할 수 있습니다. –

+0

정말 필요하지 않습니다. 프로그램에서 더 쉽게 사용하고 싶지 않다면 'LongField_First20chars'를 사용하십시오. – poolie

4
Select Cast(theLongTextField As VarChar(100)) From blogEntry 
+0

위대한! SQLite에서 작동합니다! –

5

터미널 창에서 쿼리의 결과의 가독성을 정리하는 가장 좋은 방법은 너무 복잡 할 수없는 쿼리를 수정, MySQL의 호출기를 사용하는 것입니다.

mysql> pager less -S

  • 가 쿼리를 수행합니다 :

    mysql> SELECT * FROM ...

  • 이 좀 더 읽을 수있는 형식으로 결과를 넣어 것입니다

    1. 는 호출기를 설정합니다. 화살표 키를 사용하여 페이지를 위아래로 이동하고 왼쪽과 오른쪽으로 전체 표를 볼 수 있습니다. 그냥 그 쿼리에 대한 페이저 모드에서 얻을 수 Q을 누른 다음 당신이 원하는 경우에

      mysql> pager more 
      

      가 정상 출력 강으로 돌아 실행합니다.