スペースの前のフィールドのすべての文字を取得したい
例えば、場合がfield1あります"chara ters"
返して欲しい "chara"
このselectステートメントはどのようになりますか?
回答:
SELECT LEFT(field1,LOCATE(' ',field1) - 1)
問題の文字列にスペースが含まれていない場合、空の文字列が返されることに注意してください。
select SUBSTRING_INDEX( field1, ' ', 1 ) from table;、スペースがない場合に完全な文字列が必要な場合に選択します。
SUBSTRING_INDEX)の答えは、空白値になるのではなく、区切り文字を含まない値を保持するため、一般的な解決策として「より良い」です。
以下は、機能する別の方法であり、一部の人にとっては少し簡単に見えるかもしれません。SUBSTRING_INDEXMySQL関数を使用します。1は最初のスペースの前のすべてを返し、-1は最後のスペースの後のすべてを返します。
これは 'chara'を返します:
SELECT SUBSTRING_INDEX( field1, ' ', 1 )
これは 'ters'を返します:
SELECT SUBSTRING_INDEX( field1, ' ', -1 )
詳細
正の値は文字列の先頭から指定された文字を検索し、負の値は文字列の末尾から開始します。数値の値は、文字列の残りの部分を返す前に検索する指定された文字の量を示します。検索している文字が存在しない場合は、フィールド値全体が返されます。
この場合、-2は最後から2番目のスペースの右側にあるすべてを返しますが、これはこの例には存在しないため、フィールド値全体が返されます。