如何在 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 中为表设置默认排序(即始终“主键 - 降序”)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel Eloquent 查询(或使用查询生成器)中为表起别名?