我想在空格
之前获取字段中的所有字符例如,如果field1
为"chara ters"
我希望它返回"chara"
这个选择语句会是什么样的?
答案 0 :(得分:94)
SELECT LEFT(field1,LOCATE(' ',field1) - 1)
请注意,如果有问题的字符串不包含空格,则返回空字符串。
答案 1 :(得分:67)
下面是另一种有效的方法,对某些人来说可能看起来有点简单。它使用SUBSTRING_INDEX MySQL function。 A 1返回第一个空格之前的所有内容,-1返回最后一个空格之后的所有内容。
这会返回'chara':
SELECT SUBSTRING_INDEX( field1, ' ', 1 )
这会返回'ters':
SELECT SUBSTRING_INDEX( field1, ' ', -1 )
<强>详情
正值将从字符串的开头查找指定的字符,负值将从字符串的结尾开始。数字的值表示在返回字符串的剩余部分之前要查找的指定字符的数量。如果您要搜索的字符不存在,则将返回整个字段值。
在这种情况下,-2将返回第二个到最后一个空格右侧的所有内容,在此示例中不存在,因此将返回整个字段值。
答案 2 :(得分:11)
你需要一些string operations。假设每个字段至少有一个空格字符:
SELECT SUBSTR(field1, 0, LOCATE(' ', field1)) FROM your_table;
安全方法:
SELECT IF(
LOCATE(' ', field1),
SUBSTR(field1, 0, LOCATE(' ', field1)),
field1
) FROM your_table;