我正在尝试从第一个单词中获取前3个字母,从下一个单词中获取3个字母。数据库中的名称不同。如果名称是James Fiddler,我希望它是JAMFID
试图使用SUBSTRING_INDEX,但我不知道如何。
答案 0 :(得分:0)
您是否已经尝试过将LEFT()函数与LOCATE()函数结合使用? https://www.w3resource.com/mysql/string-functions/mysql-left-function.php
在您的情况下,我认为这是(尚未测试)
SELECT LEFT(name, LOCATE(' ', name) - 1), LEFT(name, LOCATE(' ', name))
也许这篇文章可以为您提供帮助:Get all characters before space in MySQL
答案 1 :(得分:0)
SELECT CONCAT(SUBSTRING(SUBSTRING_INDEX(first,' ',1),1,3),SUBSTRING(SUBSTRING_INDEX(first,' ',-1),1,3) )FROM Test;
尝试一下...
答案 2 :(得分:0)
您可以尝试
SELECT UPPER(CONCAT(LEFT(SUBSTRING_INDEX(@name, ' ', 1),3)
,LEFT(SUBSTRING_INDEX(@name, ' ', -1),3)));
哪个给你
UPPER(CONCAT(LEFT(SUBSTRING_INDEX(@name, ' ', 1),3)
,LEFT(SUBSTRING_INDEX(@name, ' ', -1),3)))
JAMFID
答案 3 :(得分:0)
可能对您有帮助:
Declare @name varchar(100)='ABCDEFG PQRSTU'
SELECT Left(substring(@name, 1,charindex(' ',@name)),3)+LEFT(substring(@name, charindex(' ',@name)+1,len(@name)-charindex(' ',@name)+1),3)