【问题标题】:mysql & php: temporary/ virtual ids for query results?mysql & php:查询结果的临时/虚拟ID?
【发布时间】:2010-10-31 16:43:19
【问题描述】:

我想知道是否可以为查询结果分配临时/虚拟 ID?

例如,我有这个作为我的查询,

SELECT 

pg_id AS ID,
pg_url AS URL,
pg_title AS Title,
pg_content_1 AS Content

FROM root_pages

ORDER BY pg_created DESC

输出:

ID  URL     Title   Content 
53  a       A       xxx 
40  b       B       xxx 
35  c       C       xxx  

您可以看到 ID 之间的差距 - 它们非常不整齐。我想知道我是否可以制作一个虚拟列或其他东西,以便我有下面的输出,

ID  URL     Title   Content  Virtual ID
53  a       A       xxx      3
40  b       B       xxx      2
35  c       C       xxx      1 

来自下面这样的查询,

SELECT 

pg_id AS ID,
pg_url AS URL,
pg_title AS Title,
pg_content_1 AS Content

FROM root_pages

ORDER BY virtual_id DESC 

有可能吗??

谢谢!

【问题讨论】:

  • 为什么需要虚拟ID?
  • 这样我就可以做到这一点 - ORDER BY virtual_id DESC
  • 你仍然可以单独使用 id 吗?
  • 是的,它可以单独使用 id。但是当我查询奇数 ID 或偶数 ID - WHERE MOD(pg_id,2) = 1 时,它不会“正确”输出。

标签: php mysql temp-tables


【解决方案1】:

如果你仍然坚持获取每一行的位置 看看这个答案

MySQL get row position in ORDER BY

【讨论】:

  • 谢谢。但它是单行输出 - 恐怕不是我要找的......干杯
  • 如果你删除 WHERE t.name = 'Beta' 那么你得到所有行的数据?
  • 我尝试使用这个 (SELECT COUNT(*) FROM root_pages) 作为位置。然后它为每一行创建一个相同的最新数字...
  • 我找到了解决方案 - craftycodeblog.com/2010/09/13/rownum-simulation-with-mysql 感谢您的回复让我找到了答案! :)
猜你喜欢
  • 2013-02-27
  • 1970-01-01
  • 2011-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
  • 2015-11-12
  • 1970-01-01
相关资源
最近更新 更多