mysql字段分割获取长度
时间: 2024-12-06 07:22:01 浏览: 11
在MySQL中,如果你想要获取字符串字段的长度,特别是当该字段需要通过某种方式进行分割后再获取长度时,你可以使用内置函数`LENGTH()`配合字符串处理函数如`SUBSTRING_INDEX()`或者直接操作字段。
例如,假设有一个字段`address`存储的是逗号分隔的城市列表,你可以这样做:
```sql
SELECT LENGTH(address) - LENGTH(REPLACE(address, ',', '')) + 1 AS city_count;
```
这里,`REPLACE(address, ',', '')`会移除所有的逗号,然后`LENGTH()`计算剩余的字符数。最后加上1是因为原来每个城市之间有一個逗号,所以实际的城市数比去除后的长度少1。
如果你想获取每个城市的长度,可以这样做:
```sql
SELECT SUBSTRING_INDEX(address, ',', n) AS city, LENGTH(SUBSTRING_INDEX(address, ',', n)) AS city_length
FROM (
SELECT address, @n := IF(@prev = '', 1, @n+1) AS n,
@prev := SUBSTRING_INDEX(address, ',', n)
FROM address_table, (SELECT @prev:='') t
) t
WHERE n <= (LENGTH(address) - LENGTH(REPLACE(address, ',', ''))) + 1;
```
这将遍历地址,并按逗号分隔每个城市,同时计算其长度。
阅读全文