如何在 PHPMyAdmin 中为表设置默认排序(即始终“主键 - 降序”)

Posted

技术标签:

【中文标题】如何在 PHPMyAdmin 中为表设置默认排序(即始终“主键 - 降序”)【英文标题】:How can I set a default sort for tables in PHPMyAdmin (i.e. always "Primary key - Descending") 【发布时间】:2011-02-26 22:15:36 【问题描述】:

尽管它在很多方面都令人讨厌,但我在编写 php 时一直使用 PHPMyAdmin 来调试数据库问题。默认情况下,它按主键升序对表进行排序。 99% 的情况下,我宁愿将最新数据(我的测试数据)默认显示在顶部,而不是保存无用的前几条记录。

有没有办法将 PHPMyAdmin 配置为默认显示最新记录?改变类似的行为?

【问题讨论】:

FWIW:我不再使用 PHPMyAdmin,因为我发现了 SequelPro sequelpro.com 一个了不起的 macOS 免费应用程序,它可以让您以愉快而强大的方式管理您的数据库。如果您运行 macOS,请检查一下! 【参考方案1】:

默认情况下,它按主要排序表 键升序

phpMyAdmin 默认情况下根本不执行任何排序。它只是询问表中的所有记录,mysql 决定顺序。

有没有办法配置 PHPMyAdmin 默认显示最新记录? 改变类似的行为?

没有办法做到这一点,因为 phpMyAdmin 必须被告知每个表的每个主键(假设有一个,并且只有一个)以及如何对其进行排序。

phpMyAdmin 确实支持书签查询。您可以 DESC 然后将其添加为书签。但是,如果您的目标是这样,它肯定不会最大限度地减少点击次数。

http://www.phpmyadmin.net/documentation/

【讨论】:

我想我需要 PHPMyAdmin 为我保存每个表的最后排序状态并在我回到表时加载它。它似乎在一个会话中记住它,但它会在 15 分钟或其他任何时间后重置。 其实可以看下一个答案:***.com/a/14625257/727695 已修复!我猜这个答案现在是错误的,很抱歉它被作为公认的答案保留了这么久。【参考方案2】:

我认为你可以做到这一点。转到表 -> 操作并按降序设置更改表顺序。 下次浏览时,您会首先获得最新的行。

【讨论】:

这是对数据库本身的更改,而不是 phpMyAdmin,因此所有应用程序都会受到此更改的影响(尽管通常这应该没什么大不了的)。更重要的是,在插入或删除记录后,该表将不会保留该顺序。因此,每当插入/删除记录时,您必须不断返回并更改它。 dev.mysql.com/doc/refman/5.1/en/alter-table.html【参考方案3】:

你为什么不用heidi SQL

以下是有关如何操作的指南:

启用从您的主机 PC 登录。

首先,获取您的 IP 地址 - http://www.whatismyip.com 希望这是一个静态 IP,否则您有一些不太安全的选项(如下)

您需要访问权限才能在数据库上创建用户。您可以通过 Cpanel 或 PHP My Admin 执行此操作(假设您具有正确的访问级别)。如果您不确定,请谷歌获取说明。无法尝试运行此查询:

CREATE USER 'jason'@'your_ip_here' IDENTIFIED BY 'your_password_here';
GRANT ALL PRIVILEGES ON database_name.* TO 'jason'@'your_ip_here';

如果您没有静态 IP 地址,则可以考虑使用通配符,尽管这样不太安全。另一个更安全的选择是SSH tunneling

下载并安装 Heidi SQL

http://www.heidisql.com/download.php

运行安装(当然是在 windows 上)

最后,设置你的连接,连接。

你会发现heidi可以让你轻松对数据列表进行排序,http://www.heidisql.com/screenshots.php?which=data 它还记得排序和过滤器。

【讨论】:

【参考方案4】:

@jeremyclarke,在 phpMyAdmin v3.4.5 中,登录后点击“home” 然后, 从“更多”菜单中选择“设置” 单击“主框架”选项卡,然后单击“浏览模式”选项卡

在那里你会发现“默认排序顺序”默认模式设置为 SMART 因此,选择“ASC”或“DESC”

如果您执行上述步骤,它将为当前会话保存,

要永久保存它,请将其设置在 config.php http://wiki.phpmyadmin.net/pma/Config#Order

【讨论】:

默认排序选项仅在您单击列名后才会启动。当您点击表格的“浏览”标签时,它仍会按插入顺序显示表格行。【参考方案5】:

您可以使用您正在浏览的表格的名称保存一个私人书签。

见https://phpmyadmin.readthedocs.org/en/latest/faq.html#bookmarks-can-i-execute-a-default-bookmark-automatically-when-entering-browse-mode-for-a-table

6.22 书签:我可以在表格进入浏览模式时自动执行默认书签吗?

是的。如果书签与表名具有相同的标签并且它不是公共书签,它将被执行。

【讨论】:

+1。这就像一个魅力。应该是唯一被接受的答案。【参考方案6】:

对于其他来这里寻找答案的人:

在 phpMyAdmin 4.5.0 中,也可能在早期版本中,您可以像这样设置 $cfg['TablePrimaryKeyOrder'] 配置:

$cfg['TablePrimaryKeyOrder'] = 'DESC';

当没有外部定义排序顺序时,这定义了具有主键的表的默认排序顺序。可接受的值:[‘NONE’, ‘ASC’, ‘DESC’]

如果表有一个主键并且没有应用其他排序,这将设置默认排序。

【讨论】:

这应该是公认的答案。它可能是在最初的问题发布 5 年后出现的,但仍然可以挽救生命。 感谢和抱歉,我之前从未将其标记为答案,多年后才回来看到它。不知道为什么我没有看到关于 cmets 的通知,但是哦,好吧。我很久以前就停止使用 PHPMyAdmin,但很高兴这对其他人有用!【参考方案7】:

我使用的是 phpMyAdmin 版本 4.2.3(英文),我只是在位于 Libraries 目录中的 DatabaseInterface.class.php 文件的第 488 行更新了排序顺序变量。行号(可能还有文件)在其他版本中可能有所不同。

public function getTablesFull($database, $table = false,
    $tbl_is_group = false,  $link = null, $limit_offset = 0,
    limit_count = false, $sort_by = 'Name', $sort_order = 'DESC',
    $tble_type = null

当我打开文件时,变量 $sort_order 等于“ASC”。由于将其更改为 DESC 并通过 FTP 上传,因此我的表的排序顺序(在日期 (DATETIME) 上唯一键控)始终是 DESC(最近添加的记录在前)。

不确定这是否是所有情况下的最佳解决方案,但它适合我的需要。

希望这会有所帮助。

【讨论】:

以上是关于如何在 PHPMyAdmin 中为表设置默认排序(即始终“主键 - 降序”)的主要内容,如果未能解决你的问题,请参考以下文章

在 phpmyadmin 中更改默认排序规则

如何在 PHP 中为表创建动态标题

如何在 Laravel Eloquent 查询(或使用查询生成器)中为表起别名?

如何在Postgres中为表中的虚拟列创建数据库链接?

如何在 phpmyadmin 中将“关系显示列”设置为默认值

如何在 phpMyAdmin 中设置默认主题?