MySQL的substring_index函数
假定有一张表,其中有个字段是 email 保存了电子邮箱,然后,我想统计每种邮箱的占比情况。
我们知道电子信箱的格式是: account@domain ,要实现上面的统计,必须取得 email 字符串中 @ 后面的域名部分。
MySQL提供了一个名为 substring_index 的函数,能够满足我们的需求:
MySQL 5.5 Reference Manual 写道
SUBSTRING_INDEX(str,delim,count)
Returns the substring from string str before count occurrences of the delimiter delim. If count is positive, everything to the left of the final delimiter (counting from the left) is returned. If count is negative, everything to the right of the final delimiter (counting from the right) is returned. SUBSTRING_INDEX() performs a case-sensitive match when searching for delim.
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
-> 'www.mysql'
mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);
-> 'mysql.com'
This function is multi-byte safe.
查询语句如下:
select
substring_index(email,'@',-1) as domain,
count(distinct email) as count,
count(distinct email)
/ (select count(distinct email) from qzt_resume_basic where email like '%@%')
* 100 as percent
from qzt_resume_basic
where email like '%@%'
group by 1
order by 2 desc
limit 10;
分享到:
相关推荐
`SUBSTRING_INDEX()` 是 MySQL 数据库中的一个常用字符串处理函数,主要用于根据指定的分隔符对字符串进行分割,并返回分割后的子字符串。此函数在处理 URL 或路径等类型的数据时非常有用。 #### 二、函数语法 ```...
MySQL中的`SUBSTRING_INDEX()`函数是一个非常实用的字符串处理函数,它主要用于从字符串中提取子串,基于指定的分隔符出现的次数。这个函数在处理分隔符分隔的数据时特别有用,例如处理IP地址、逗号分隔的列表等。 ...
除了`substring`和`patindex`,SQL还提供了其他字符串处理函数,如MySQL中的`SUBSTRING`和`SUBSTR`,以及`substring_index`,它们有着类似的用途,但语法和使用方式可能有所不同。例如,在MySQL中,`SUBSTRING`函数...
SUBSTRING_INDEX函数按照分隔符将字符串分割,并返回分割后指定数目的部分。 ```sql SELECT SUBSTRING_INDEX('***', '.', 2); -- 返回 '***' ``` 请注意,实际使用中可能会遇到OCR扫描文档导致的个别字识别错误或漏...
函数通过多次使用`SUBSTRING_INDEX`来定位目标字段,并去除多余的引号。 以下是如何使用此函数的一个例子: ```sql SELECT json_extract_c(json, "$.totalDays"), json FROM item LIMIT 100; ``` 这里假设`item`...
首先,`SUBSTRING_INDEX()`函数是MySQL中用于拆分字符串的关键工具。它的语法是: ```sql SUBSTRING_INDEX(str, delimiter, count) ``` 其中,`str`是要分割的字符串,`delimiter`是作为分隔符的字符,`count`表示...
一、SUBSTRING_INDEX函数 MySQL中的`SUBSTRING_INDEX()`函数是进行字符串分割的常用工具。它返回一个子串,该子串包含了从原始字符串的起始部分到指定分隔符出现的次数。函数的基本语法如下: ```sql SUBSTRING_...
本文将深入讲解MySQL中的两个关键函数:`SUBSTRING` 和 `SUBSTRING_INDEX`,并提供相关示例来帮助理解它们的用法。 ### 1. `SUBSTRING` 函数 `SUBSTRING` 函数用于从字符串中提取指定部分。其基本语法如下: ```...
这个函数可能会使用一系列字符串处理函数,如`SUBSTRING_INDEX()`、`REPLACE()`和`TRIM()`等,来解析URL结构并提取域名部分。 例如,一个简单的实现可能如下: ```sql DELIMITER // CREATE FUNCTION url2domain...
在MySQL中,可以使用内置的`SUBSTRING_INDEX()`函数来分割字符串。这个函数根据指定的分隔符返回一个字符串的一部分,可以是起始部分或结束部分。例如,如果你有一个包含逗号分隔的数字串,你可以使用它来获取每个...
在MySQL数据库中,`FIND_IN_SET()` 和 `IN()` 是两种不同的用于查询的函数,它们各有其特定的用途和应用场景。以下是对这两个函数的详细解释。 `FIND_IN_SET()` 函数主要用于在一个以逗号分隔的字符串列表中查找...
在处理这种问题时,我们可以使用SQL的内置函数,例如`SUBSTRING_INDEX()`(在MySQL中)或`STRING_SPLIT()`(在SQL Server中)。这些函数可以帮助我们根据指定的分隔符(在这里是"/")来分割字符串。然后,通过递归...
SUBSTRING_INDEX()函数按照给定的分隔符进行分割,并返回分割后的第N个子串。例如,SUBSTRING_INDEX('***','.',3)将返回'***'。 ### 总结 在MySQL数据库操作中,函数是不可或缺的组成部分,它们极大地提高了数据...
2. `SUBSTRING_INDEX`函数:此函数用于根据分隔符提取字符串的一部分。`SUBSTRING_INDEX(str, delim, count)`返回从左侧开始,到分隔符出现`count`次的子串。如果`count`为负数,则从右侧开始计算。 3. `CONCAT`...
达梦数据库不支持substring_index函数,而是使用substr或substring函数来实现子串操作。例如: ``` select substr('hello world', 1, 5); --hello select substring('hello world' from 1 for 5); --hello ``` 5. ...
这里我们将详细介绍四个常见的MySQL截取函数:`LEFT()`、`RIGHT()`、`SUBSTRING()` 和 `SUBSTRING_INDEX()`。 1. **`LEFT()` 函数**: `LEFT(str, length)` 用于从字符串 `str` 的左侧开始截取 `length` 个字符。...