mysql中判断某一字段是否含有;1、如果含有;该字符串就用该字符串进行分组分别判断这些组中是否含有01-12 。2、如果不含有;则判断该字段的字符是否在01-12之间
时间: 2024-09-12 10:15:56 浏览: 33
Mysql字符串字段判断是否包含某个字符串的2种方法
在MySQL中,你可以通过`SUBSTRING_INDEX()`函数配合`INSTR()`函数来完成这样的操作。首先,你需要确定字段中是否存在你要找的特定字符串,然后基于这个字符串对字段进行分组。接着,对每个组内的部分使用`INSTR()`检查是否有"01-12"。
假设字段名为`column_name`,特定字符串为`separator`(如逗号或破折号),我们可以这样做:
```sql
SELECT
CASE
WHEN INSTR(column_name, separator) > 0 THEN
-- 字段中含有特定字符串,进行进一步处理
GROUP_CONCAT(
CASE
WHEN SUBSTRING_INDEX(SUBSTRING_INDEX(column_name, separator, numbers + 1), separator, -1) BETWEEN '01' AND '12'
THEN '含01-12'
ELSE NULL
END
) AS group_result
ELSE
-- 字段中不含特定字符串,直接检查范围
IF(column_name BETWEEN '01' AND '12', '在范围内', '不在范围内') AS direct_result
END
FROM (
-- 查找包含separator的位置
SELECT @numbers := IFNULL(@numbers + 1, 1) AS numbers
FROM table_name, (SELECT @numbers := 0) t1
WHERE column_name LIKE CONCAT('%', separator, '%')
) subquery;
```
在这个查询中,我们首先创建了一个子查询找到所有包含`separator`的位置,然后在外部查询中根据这些位置进行分组并检查子串是否在指定范围。
阅读全文