select * from tt where instr(concat(',',Depart_admin,','),',rs81,')>0
如果你的目的是查询,你可以用rs81与,;组合取匹配,可以不用replace。 例如SELECT * FROM ( SELECT 'aaa,cc,dd' AS M UNION SELECT 'aaa,ccd,dd' AS M UNION SELECT 'aaa,cc;dd' AS M UNION SELECT 'aaa,cc' AS M ) tmp WHERE M REGEXP '(^cc,)|(^cc;)|(,cc,)|(,cc;)|(;cc,)|(;cc;)|(,cc$)|(;cc$)'
你这个我也想到了,但是有个问题:如果depart_admin列中存在'manager,rs81'按照这种方式替换了之后该列的值就是',rs81'这不是还的去掉','?
按照这种方式 我表中Depart_admin列中如果存储的值如果为',rs81,,rs810,rs811'
哪你告诉我,我要怎么样才能根据用户Id查询出部门管理员是rs81的部门?
例如SELECT *
FROM (
SELECT 'aaa,cc,dd' AS M
UNION SELECT 'aaa,ccd,dd' AS M
UNION SELECT 'aaa,cc;dd' AS M
UNION SELECT 'aaa,cc' AS M ) tmp
WHERE M REGEXP '(^cc,)|(^cc;)|(,cc,)|(,cc;)|(;cc,)|(;cc;)|(,cc$)|(;cc$)'
现在解决了
1、先用replace替换
2、后用这样就可以解决所有问题了,顺便
问一句12L如果用这种转换然后查找的方式性能如何 5W的数据大概需要花费多少时间?