为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8.1-2-138
【操作系统】:麒麟
【CPU】:ARM
【问题描述】*:
SELECT
batch_plan_id,
batch_set_id,
school_code,
school_name,
recruit_type,
plan_num,
telephone,
major_code,
major_name,
xz,
tuition,
zsf,
school_address,
plan_type,
lbyx,
spbm,
dsmc,
remark,
order_num,
enrollment_scope,
not_enrollment_scope,
create_time,
dept_id,
will_type,
STATUS
FROM
volunteer_batch_plan t
WHERE
t. STATUS = '0'
AND t.batch_set_id = 18
AND (
FIND_IN_SET(
'00',
t.ENROLLMENT_SCOPE,
','
) > 0
OR FIND_IN_SET(
SUBSTRING('240632500101', 5, 2),
t.ENROLLMENT_SCOPE
) > 0
OR FIND_IN_SET(
SUBSTRING('240632500101', 5, 4),
t.ENROLLMENT_SCOPE
) > 0
OR FIND_IN_SET(
SUBSTRING('240632500101', 5, 6),
t.ENROLLMENT_SCOPE
) > 0
OR FIND_IN_SET(
SUBSTRING('240632500101', 5, 8),
t.ENROLLMENT_SCOPE
) > 0
)
表结构如下:
FIND_IN_SET 貌似只能支持到32767字节。
如果 ENROLLMENT_SCOPE 字段内容都是数值+逗号的话,可以用正则表达式来试一下。
类似于:
SELECT REGEXP_INSTR('123,43,2343,123,1231','(^|,)123(,|$)')