小白提问:关于MySQL查询的一个问题

2013-03-08 16:13:07 +08:00
 Ebola
3142 次点击
所在节点    问与答
16 条回复
qiayue
2013-03-08 16:24:12 +08:00
不说其他的,仅就你图片中的情况,给出一个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,%'
AustinLee
2013-03-08 16:26:04 +08:00
SELECT GROUP_CONCAT(文章ID SEPARATOR ','),DATA数据,DATE日期 FROM 数据表 GROUP BY DATA数据,DATE日期
Ebola
2013-03-08 16:28:16 +08:00
@qiayue 感谢回答
Ebola
2013-03-08 16:29:59 +08:00
@AustinLee 查询条件只提供了 文章id 。
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,%'
Ebola
2013-03-08 16:33:59 +08:00
@AustinLee 谢谢。懂了
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,%'
123123
2013-03-08 16:35:56 +08:00
不推荐前后加逗号用LIKE,推荐用FIND_IN_SET
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
AustinLee
2013-03-08 16:47:43 +08:00
qiayue
2013-03-08 20:39:48 +08:00
学习了
jacy
2013-03-08 20:49:00 +08:00
什么问题,我啥都没看到
Ebola
2013-03-09 22:30:21 +08:00
@qiayue 能加你QQ吗?
qiayue
2013-03-09 22:50:05 +08:00
@Ebola 3757〇〇〇53
Ebola
2013-03-09 23:16:48 +08:00
@AustinLee 大神,能加你企鹅吗?
AustinLee
2013-03-11 13:49:51 +08:00
@Ebola 额 没有企鹅额 只有MSN lyzzyz[at]gmail.com

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/62332

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX