Php 更新mysql,新数据从唯一id 1开始
我想知道如何用新数据更新我的数据库表,但最新数据位于顶部,唯一id从1开始。我的意思是: 例如,第一个插入查询插入3个文章主题:Php 更新mysql,新数据从唯一id 1开始,php,mysql,database,Php,Mysql,Database,我想知道如何用新数据更新我的数据库表,但最新数据位于顶部,唯一id从1开始。我的意思是: 例如,第一个插入查询插入3个文章主题: id article 1 firstNews 2 secondNews 3 thirdNews 然后,下次运行Cron作业检查新项目时,例如,出现两个新项目,我希望这两个新项目位于表的开头,如下所示: id article 1 NewArticle1 2 Ne
id article
1 firstNews
2 secondNews
3 thirdNews
然后,下次运行Cron作业检查新项目时,例如,出现两个新项目,我希望这两个新项目位于表的开头,如下所示:
id article
1 NewArticle1
2 NewArticle2
3 firstNews
4 secondNews
5 thirdNews
希望这是有道理的。这可能是一种不好的方法,我想我可以用insert date()创建一个列,然后按OrderBy date获取数据,但这必须是一种更简单的方法。我认为这是从表中输出最新数据的最简单方法
如果我按DESC进行排序,它将在NewArticle1之前输出NewArticle2,这将无法实现此目的
id article
1 firstNews
2 secondNews
3 thirdNews
4 NewArticle1
5 NewArticle2
所以根据描述,ID5将是第一个输出…我真的希望有办法解决这个问题…你永远不应该这样做。只需在末尾插入,要获取最新文章,请使用查询:
SELECT * FROM articles ORDER BY id DESC;
通常情况下:不要使数据适合您的查询,而是使查询适合您的数据。id不是位置或数字,它唯一地标识该行数据。您永远不应该这样做。只需在末尾插入,要获取最新文章,请使用查询:
SELECT * FROM articles ORDER BY id DESC;
通常情况下:不要使数据适合您的查询,而是使查询适合您的数据。id不是位置或数字,它唯一地标识该行数据。您可以使用日期列并对其进行排序。或者按ID降序排序 在适当的位置更改PK很少是个好主意。不仅如此,您可能有使用该PK的子表,也可能有历史表
请注意,SQL表没有隐含的顺序:您总是需要一个order BY来保证结果集的顺序,您可以使用日期列并对其进行排序。或者按ID降序排序 在适当的位置更改PK很少是个好主意。不仅如此,您可能有使用该PK的子表,也可能有历史表
请注意,SQL表没有隐含的顺序:您始终需要一个order BY来保证结果集的顺序。您应该添加另一个专门用于排序的列,例如日期。并在其上添加一个
索引
然后查询变成:
SELECT *
FROM news
ORDER BY newsdate DESC
最新消息先行
如果有两条新闻可以同时发布,您可能希望包含第二类:
ORDER BY newsdate DESC, id ASC
您应该添加另一个专门用于排序的列,例如日期。并在其上添加一个索引
然后查询变成:
SELECT *
FROM news
ORDER BY newsdate DESC
最新消息先行
如果有两条新闻可以同时发布,您可能希望包含第二类:
ORDER BY newsdate DESC, id ASC
这根本不应该是你关心的
ID不是一个数字,也不是一个位置。它只是一个唯一标识符
意味着每一个数据库行都将永远保留其id。当你想为每一条新消息分配你的“唯一”id时,这是没有意义的
因此,只需使用通常的自动递增id,并使用“按id顺序描述”选择它,就可以首先获得最新的条目。您不必担心它
ID不是一个数字,也不是一个位置。它只是一个唯一标识符
意味着每一个数据库行都将永远保留其id。当你想为每一条新消息分配你的“唯一”id时,这是没有意义的
因此,只需使用常用的自动递增id,并使用按id排序说明选择它,即可首先获得最新的条目。更改id是一个坏主意(例如,您将无法轻松链接到您的某篇文章)、大量工作(对于您和数据库)和不必要的工作(您只需执行按id排序说明)。重新排列表主索引不是一个选项。例如,当使用URLnews.php?p=id=2
时,每天会产生不同的新闻条目。只需根据降序id对结果进行排序。更改id是一个坏主意(例如,您将无法轻松链接到您的某篇文章)、大量工作(对于您和数据库)和不必要的工作(您只需执行ORDER BY id DESC
)。重新排列表主索引不是一个选项。例如,当使用URLnews.php?p=id=2
时,每天会产生不同的新闻条目。只需根据递减id对结果进行排序。如果我这样做,则NewArticle1的id为4,NewArticle2的id为5。如果我按DESC排序,NewArticle2将位于NewArticle1之前,因此这不是最新的…刷新结果时,首先将所有项目保存在一个数组中(ORDER Newsitem1,Newsitem2),然后使用array_reverse()反转顺序。循环反向数组,Newsitem 2将插入Newsitem 1之前,从而为您提供所需的结果。我非常喜欢这种想法,即反转数组中的顺序,然后插入DB。应该给我最新的项目是最后一个id。谢谢你的建议!如果我这样做,那么NewArticle1的id为4,NewArticle2的id为5。如果我按DESC排序,NewArticle2将位于NewArticle1之前,因此这不是最新的…刷新结果时,首先将所有项目保存在一个数组中(ORDER Newsitem1,Newsitem2),然后使用array_reverse()反转顺序。循环反向数组,Newsitem 2将插入Newsitem 1之前,从而为您提供所需的结果。我非常喜欢这种想法,即反转数组中的顺序,然后插入DB。应该给我最新的项目是最后一个id。谢谢你的建议!