数据库中有一字段,teams,
teams
1:{1523}{2692}{1894}
2: {123}
3:{123}{741}要查找在{123}{789}{456}的记录,
比如说2中有{123},3中也有{123},则2和3都是符合的记录,能明白我的意思吗?
teams
1:{1523}{2692}{1894}
2: {123}
3:{123}{741}要查找在{123}{789}{456}的记录,
比如说2中有{123},3中也有{123},则2和3都是符合的记录,能明白我的意思吗?
解决方案 »
- 实在没法儿了,怎么在mysql中根据成绩排名并更新到排名的那个字段
- 求按小时拆分时间段的sql语句
- ERROR 1336 (0A000): Dynamic SQL is not allowed in stored function or trigger
- MySQL游标问题?
- jsp+tomcat+mysql 怎么去配置
- 如何提高mysql查询中使用not in时的查询速度?
- [求助]在Windows2003环境下如何完全卸载MySQL?[up有分]
- 我在java中怎样取得2001-10-11以后的所有记录
- mySQ单表2000W 记录,查询效率低,是否有优化办法?
- 请教关于排序表的问题
- 求助:Mac 平台安装MySql出现问题,
- 求助了,关于网站并发量估计的
SELECT '(123 741)' REGEXP '(123|789|456)'
teams
1 {789}
2 {123}{456}{789}
3 {123}{456}
4 {123}
然后查找teams中含有{123}{456}其中一个的就行,比如2 和 3中 都含有{123}{456},满足,4含有{123},也满足,这怎么构造啊???
FROM `tablename`
WHERE teams REGEXP CONCAT('(',REPLACE(REPLACE(REPLACE('{123}{789}{456}','{','\\{'),'}','\\}'),'\\}\\{','\\}|\\{'),')');
select * from tt where
REPLACE(REPLACE(teams,'{',''),'}','|') regexp '123|456'
现在出现了一个问题,不知道能不能解决,比如
teams 有这样的记录:
1: 2650|123
2: 6503|123他们不符合 650|980|1023|4567|1564|7532,,但是 也会把上面两条记录查找出来,,,
select * from tt where
concat(',',
REPLACE(REPLACE(teams,'{',''),'}',',|,'),',') regexp ',123,|,456,'
SELECT ',2650,|,123,' REGEXP ',650,|,980,|,1023,|,4567,|,1564,|,7532,'
这样的SQL语句
这个对,,然后我研究了一下这个,,发现where
concat(',',
REPLACE(REPLACE(teams,'{',''),'}',','),',') regexp ',(123|456),' 这样也行哦
'\\{123\\}|\\{456\\}'
regexp '\\{123\\}|\\{456\\}',,这个123,456 是数组里的元素,$arr=array(123,456), 是不是得$str=implode('\\}|\\{',); 然后regex concat('\\',$str,'\\}') 啊>