MYSQL枚举:@rownum,奇数和偶数记录
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MYSQL枚举:@rownum,奇数和偶数记录,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2014字,纯文字阅读大概需要3分钟。
内容图文
![MYSQL枚举:@rownum,奇数和偶数记录](/upload/InfoBanner/zyjiaocheng/894/c891cb525fb7428c9c52bf1b744adb91.jpg)
我问了一个关于为查询结果创建临时/虚拟ID的问题,
mysql & php: temporary/ virtual ids for query results?
我几乎得到了这个链接,
http://craftycodeblog.com/2010/09/13/rownum-simulation-with-mysql/
我设法列出每一行,
SELECT
u.pg_id AS ID,
u.pg_url AS URL,
u.pg_title AS Title,
u.pg_content_1 AS Content,
@rownum:=@rownum+1 AS rownum
FROM (
SELECT pg_id, pg_url,pg_title,pg_content_1
FROM root_pages
WHERE root_pages.parent_id = '7'
AND root_pages.pg_id != '7'
AND root_pages.pg_cat_id = '2'
AND root_pages.pg_hide != '1'
ORDER BY pg_created DESC
) u,
(SELECT @rownum:=0) r
结果,
ID URL Title Content rownum
53 a x x 1
52 b x x 2
43 c x x 3
41 d x x 4
但我怎么能更进一步 – 我想显示奇数或偶数记录只有下面的那些 – 是否可能?
奇怪的记录,
ID URL Title Content rownum
53 a x x 1
43 c x x 3
甚至记录,
ID URL Title Content rownum
52 b x x 2
41 d x x 4
谢谢.
附:我实际上并不太了解sql查询,即使我几乎得到了答案,例如,“你”和“t”是什么意思?
解决方法:
what do the ‘u’ and ‘t’ mean?
它们是表别名,因此您无需在需要引用时指定表的完整名称.
要仅获取奇数记录,请使用:
SELECT x.*
FROM (SELECT u.pg_id AS ID,
u.pg_url AS URL,
u.pg_title AS Title,
u.pg_content_1 AS Content,
@rownum := @rownum + 1 AS rownum
FROM root_pages u
JOIN (SELECT @rownum := 0) r
WHERE u.parent_id = '7'
AND u.pg_id != '7'
AND u.pg_cat_id = '2'
AND u.pg_hide != '1'
ORDER BY u.pg_created DESC) x
WHERE x.rownum % 2 != 0
要获取偶数编号的记录,请使用:
SELECT x.*
FROM (SELECT u.pg_id AS ID,
u.pg_url AS URL,
u.pg_title AS Title,
u.pg_content_1 AS Content,
@rownum := @rownum + 1 AS rownum
FROM root_pages u
JOIN (SELECT @rownum := 0) r
WHERE u.parent_id = '7'
AND u.pg_id != '7'
AND u.pg_cat_id = '2'
AND u.pg_hide != '1'
ORDER BY u.pg_created DESC) x
WHERE x.rownum % 2 = 0
说明
%是MySQL语法中的模数运算符 – 它返回除法的余数.例如,1%2是0.5,而2%2是零.然后在WHERE子句中使用它来过滤显示的行.
内容总结
以上是互联网集市为您收集整理的MYSQL枚举:@rownum,奇数和偶数记录全部内容,希望文章能够帮你解决MYSQL枚举:@rownum,奇数和偶数记录所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。