공백 앞에 필드의 모든 문자를 얻고 싶습니다.
예를 들어, 경우가 field1
있다"chara ters"
나는 그것을 돌려주고 싶다 "chara"
이 select 문은 어떻게 생겼습니까?
답변:
SELECT LEFT(field1,LOCATE(' ',field1) - 1)
문제의 문자열에 공백이 없으면 빈 문자열이 반환됩니다.
select SUBSTRING_INDEX( field1, ' ', 1 ) from table;
공백이 없으면 완전한 문자열을 원할 경우 선택합니다.
SUBSTRING_INDEX
)은 빈 값을 생성하는 대신 구분 기호를 포함하지 않는 값을 유지하기 때문에 일반적인 솔루션으로 "더 나은"것입니다.
다음은 작동하는 또 다른 방법이며 일부에게는 조금 더 간단 해 보일 수 있습니다. SUBSTRING_INDEX MySQL 함수를 사용합니다 . 1은 첫 번째 공백 이전의 모든 것을 반환하고 -1은 마지막 공백 이후의 모든 것을 반환합니다.
이것은 'chara'를 반환합니다.
SELECT SUBSTRING_INDEX( field1, ' ', 1 )
이것은 'ters'를 반환합니다.
SELECT SUBSTRING_INDEX( field1, ' ', -1 )
세부
양수 값은 문자열 시작 부분에서 지정된 문자를 찾고 음수 값은 문자열 끝 부분에서 시작합니다. 숫자 값은 문자열의 나머지 부분을 반환하기 전에 찾을 지정된 문자의 수량을 나타냅니다. 검색중인 문자가 없으면 전체 필드 값이 반환됩니다.
이 경우 -2는이 예제에 존재하지 않는 두 번째에서 마지막 공간의 오른쪽에있는 모든 것을 반환하므로 전체 필드 값이 반환됩니다.
이를 위해서는 문자열 연산 이 필요 합니다. 모든 필드에 하나 이상의 공백 문자가 있다고 가정합니다.
SELECT SUBSTR(field1, 0, LOCATE(' ', field1)) FROM your_table;
안전한 접근 :
SELECT IF(
LOCATE(' ', field1),
SUBSTR(field1, 0, LOCATE(' ', field1)),
field1
) FROM your_table;
SELECT SUBSTR(field1, 1, LOCATE(' ', field1)) FROM your_table;