【问题标题】:how to alter table column in mysql and php?如何更改 mysql 和 php 中的表列?
【发布时间】:2018-07-07 22:05:04
【问题描述】:

我有 1 个表,我想在我的 php 文件中使用 alter 函数重新排序视图列,基本上它应该在大多数视图中重新排序为最少视图顺序。并希望它以相同的顺序显示已更改,但它正在显示按id排序。

现在我不想使用 ORDER BY 视图 DESC 这就是我使用 alter 函数的原因。因为我已经在我的 php 文件中使用 ORDER BY name ASC。

TABLE => 用户

 id   |  name  | views
  1   |  user1 |  700
  2   |  user3 |  900
  3   |  user1 |  200
  4   |  user4 |  900
  5   |  user4 |  800
  6   |  user4 |  800
  7   |  user3 |  900
  8   |  user4 |  900
  9   |  user5 |  100
 10   |  user5 |  100


// this is random table..//

最终我正在寻找,当按表在视图中排序时,我将从表中选择数据,如果有相同的名称,那么它应该在视图中排序为 ALTERED,以便我得到这样的输出:

 id   |  name  | views
  1   |  user1 |  900
  2   |  user1 |  700
  3   |  user1 |  200
  4   |  user3 |  900
  5   |  user4 |  900
  6   |  user4 |  800
  7   |  user5 |  900
  8   |  user5 |  900
  9   |  user5 |  300
 10   |  user5 |  100

【问题讨论】:

  • 我认为你的意思是UPDATEALTER 用于更改表架构。
  • 您的查询中可以有多个 ORDER BY 条件:ORDER BY name ASC, views DESC。这将首先按名称排序,然后按视图排序(但仍保持名称顺序,因为该顺序是第一位的)。
  • 是的,但默认情况下它按 id 顺序显示数据
  • "是的,但默认情况下它按 id 顺序显示数据" 默认是什么?不使用 ORDER BY 的 SQL 没有默认排序
  • @MagnusEriksson 没有 ORDER BY,你可以 100% 确定你会得到什么……那将是 100% 的混乱。

标签: php mysql sql


【解决方案1】:

SQL 表是无序集。它们没有内在的顺序,你不应该依赖从没有明确声明order by 子句的查询返回的任何顺序。在您的情况下,您似乎需要按顺序排列两个元素 - 首先按名称,然后按视图:

SELECT   *
FROM     mytable
ORDER BY name ASC, views DESC

【讨论】:

  • 应该是ASC @Tarusjo
  • @Tarusjo 它应该是ASC。代表我的愚蠢错字,现在由 Gordon 编辑和修复。
猜你喜欢
  • 1970-01-01
  • 2010-12-18
  • 2016-05-30
  • 2016-09-10
  • 2018-12-27
  • 2017-05-16
  • 1970-01-01
  • 2016-01-04
  • 2016-01-10
相关资源
最近更新 更多