mysql 定位多个分隔符

标签 mysql string locate

在我们的数据库中,我们有一个名称列,我试图选择第一个和最后一个使用的列,但数据使用 |或空格分隔符。现在我们的代码适用于空间名称,但我需要它拆分为任一空间名称。

table.name
第一个最后一个
first2|last2

select substr(upper(mid(vo.name, 1, locate(' ',vo.name)-1)),1,20) as 'First Name',
       substr(upper(mid(vo.name, locate(' ',vo.name)+1, 100)),1,20) as 'Last Name'
from table vo

有办法找到其中任何一个吗?

最佳答案

我最终使用嵌套的replace()函数来清理内联数据,但我觉得可能有一种更干净的方法。

    SELECT
      UPPER(SUBSTRING(vo.name, 1, LOCATE(' ', REPLACE(vo.name, '|', ' ')) - 1)) as 'First Name',
      UPPER(SUBSTRING(vo.name, LOCATE(' ', REPLACE(vo.name, '|', ' ')) + 1)) as 'Last Name'
from table vo

关于mysql 定位多个分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27132810/

相关文章:

linux - 定位扩展属性

PHP RSS 在第 55 行无法解析

string - 在Scala中删除以大写字符开头的字符串的单词

c - 比较两个应该相同的单词时 strcmp 失败

c++ - 一次输入一行到c++中的字符串数组

java - 在固定网格中定位和/或选择图形对象的有效方法

python - 对数时间Python中有序列表中的位置元素

javascript - 选择选择框的值,从 MYSQL 获取行并在一个文件中处理结果

mysql - 子子查询无法访问在外部范围内定义的表

php excel 导出 - 文本被分成新行