在字符串中找到第三个空格索引的最简单方法是什么。
我的目标是从此空格分隔列表中获取CCC
:AAAA BBBB CCCC DDDD EEE
。其中A和B和D是固定长度,C是可变长度,E F G是可选的。
在Java中我会使用indexof,起点为10,这会让我得到第三个空格,但似乎我不能在MySQL中这样做,所以我想也许我可以找到'第三个索引'的功能?
答案 0 :(得分:44)
您可能希望使用SUBSTRING_INDEX
这样的功能
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(field, ' ', 3), ' ', -1)
FROM table
内部函数调用会将您带到AAAA BBBB CCCC
,而外部函数调用会将其减少到CCCC
。
答案 1 :(得分:3)
您可以使用SUBSTRING_INDEX
。
答案 2 :(得分:1)
DROP FUNCTION IF EXISTS `Find_string_by_position`$$
CREATE DEFINER=`root`@`localhost` FUNCTION
`Find_string_by_position`(str VARCHAR(255), delimeter VARCHAR(255),pos INT(2)) RETURNS VARCHAR(255) CHARSET utf8mb4 BEGIN
DECLARE s VARCHAR(255);
DECLARE d VARCHAR(255);
DECLARE p INT DEFAULT 1;
DECLARE val VARCHAR(255);
SET s = LCASE(str);
SET d = delimeter;
SET p = pos;
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(s,d,p),d,-1) INTO @val;
RETURN @val;
END$$
DELIMITER ;
答案 3 :(得分:0)
通常,您可以使用以下命令在字符串中选择nth
字:
SET @N = 3; -- 3rd word
SET @delimiter = ' ';
SELECT
SUBSTRING_INDEX(SUBSTRING_INDEX(words, @delimiter, @N), @delimiter, -1)
FROM
my_table
答案 4 :(得分:0)
使用以下查询在分组依据之后从表中查找任何随机ID。 这里的id是autoincrement_id。
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(GROUP_CONCAT(id),",",FLOOR(RAND()*COUNT(DISTINCT id))+1),",",-1) AS random_id FROM tableName GROUP BY groupbyColumn
答案 5 :(得分:0)
ID | 姓名 | 部门 |
---|---|---|
1 | 阿米特·库马尔·夏尔马 | 计算机科学 |
*您可以通过简单的查询来提取第三个字符串
查询:-
SELECT SUBSTRING_INDEX(Name, ' ', -1) as last_name FROM table_name
输出:- 夏尔马