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