1
qiayue 2013-03-08 16:24:12 +08:00 1
不说其他的,仅就你图片中的情况,给出一个sql
SELECT * FROM table_name WHERE 文章ID like '%36%' 但是假设文章ID是 34,6,36,83 SELECT * FROM table_name WHERE 文章ID like '%6%' 就会出来两条结果 所以,建议文章ID数据前后再加一个逗号,变成 ,34,6,36,83, 然后,sql改成这样 SELECT * FROM table_name WHERE 文章ID like '%,6,%' |
2
AustinLee 2013-03-08 16:26:04 +08:00 1
SELECT GROUP_CONCAT(文章ID SEPARATOR ','),DATA数据,DATE日期 FROM 数据表 GROUP BY DATA数据,DATE日期
|
5
AustinLee 2013-03-08 16:33:05 +08:00
@Ebola SELECT GROUP_CONCAT(文章ID SEPARATOR ','),DATA数据,DATE日期 FROM 数据表 GROUP BY DATA数据,DATE日期 HAVING BY GROUP_CONCAT(文章ID SEPARATOR ',') LIKE '%,文章ID,%'
|
7
AustinLee 2013-03-08 16:34:22 +08:00
@Ebola SELECT GROUP_CONCAT(文章ID SEPARATOR ','),DATA数据,DATE日期 FROM 数据表 GROUP BY DATA数据,DATE日期 HAVING [BY PS:不好意思 这个地方的BY 请去掉] GROUP_CONCAT(文章ID SEPARATOR ',') LIKE '%,文章ID,%'
|
8
123123 2013-03-08 16:35:56 +08:00 1
不推荐前后加逗号用LIKE,推荐用FIND_IN_SET
|
9
AustinLee 2013-03-08 16:41:26 +08:00
听@123123 同学的建议 SELECT GROUP_CONCAT(文章ID SEPARATOR ','),DATA数据,DATE日期 FROM 数据表 GROUP BY DATA数据,DATE日期 HAVING FIND_IN_SET(GROUP_CONCAT(文章ID SEPARATOR ','),文章ID) >0 有个 问题 在数据 为 ab,ac,ad 的情况下 FIND_IN_SET 的第二个参数为 a的情况下 改函数返回值是否也大于0
|
10
AustinLee 2013-03-08 16:47:43 +08:00 1
|
11
qiayue 2013-03-08 20:39:48 +08:00
学习了
|
12
jacy 2013-03-08 20:49:00 +08:00 1
什么问题,我啥都没看到
|