在MySQL空间之前获取所有的字符

我想在一个空间之前得到一个字段中的所有字符

例如,如果field1"chara ters"

我想要它返回"chara"

这个select语句是什么样的?

3 Solutions collect form web for “在MySQL空间之前获取所有的字符”

SELECT LEFT(field1,LOCATE(' ',field1) - 1)

请注意,如果该string不包含空格,则会返回一个空string。

下面是另一种可行的方法,对某些人来说可能更简单一些。 它使用SUBSTRING_INDEX MySQL函数 。 1返回第一个空格之前的所有内容,-1返回最后一个空格之后的所有内容。

这返回“chara”:

 SELECT SUBSTRING_INDEX( field1, ' ', 1 ) 

这返回“ters”:

 SELECT SUBSTRING_INDEX( field1, ' ', -1 ) 

细节

正值将从string的开头查找指定的字符,负值将从string的末尾开始。 数字的值表示在返回string的剩余部分之前要查找的指定字符的数量。 如果您正在search的字符不存在,则将返回整个字段值。

在这种情况下,-2会将所有东西都返回到第二个到最后一个空格的右边,在这个例子中不存在,所以整个字段值将被返回。

你会需要一些string操作 。 假设每个字段都至less有一个空格字符:

 SELECT SUBSTR(field1, 0, LOCATE(' ', field1)) FROM your_table; 

安全的做法:

 SELECT IF( LOCATE(' ', field1), SUBSTR(field1, 0, LOCATE(' ', field1)), field1 ) FROM your_table; 
  • 我可以在SELECT查询中重复使用计算的字段吗?
  • 在SQL Server中执行嵌套的case语句逻辑的最佳方法
  • 优化PostgreSQL进行快速testing
  • 拆分给定的string,并准备case语句
  • 在MySQL中使用限制更新多行?
  • LINQ to SQL - 左外部连接多个连接条件
  • 无法执行脚本:内存不足以继续执行程序
  • MySQL快速删除大数据库中的重复项
  • MySQL:没有更新时间戳更新条目
  • 如何使用SQL查询创build逗号分隔列表?
  • 引用别名(在SELECT中计算)在WHERE子句中