Mysql 防止insert语句在SQL中对表重新排序
我正在创建一个外键表。该表将保存组名(作为其主键),该组名在主表中作为FK引用。主表中的许多对象可能属于一个组 有很多不同的组名,所以我想用insert into语句一次添加它们。但是,我希望“None”是表中的最大值,以便在主表中添加新条目时可以轻松单击它 但是,当我在FK表中输入'None'后,再执行insert into语句时,表会自动重新排序(按字母顺序),将'None'放在中间附近,不容易单击 如何防止表自身重新排序 编辑: 对不起,我不清楚。我使用Navicat GUI向表中添加数据,因此在向主表中添加数据时,外键字段是一个下拉列表(它有顶部和底部,并按字母顺序排列)Mysql 防止insert语句在SQL中对表重新排序,mysql,sql,sql-insert,Mysql,Sql,Sql Insert,我正在创建一个外键表。该表将保存组名(作为其主键),该组名在主表中作为FK引用。主表中的许多对象可能属于一个组 有很多不同的组名,所以我想用insert into语句一次添加它们。但是,我希望“None”是表中的最大值,以便在主表中添加新条目时可以轻松单击它 但是,当我在FK表中输入'None'后,再执行insert into语句时,表会自动重新排序(按字母顺序),将'None'放在中间附近,不容易单击 如何防止表自身重新排序 编辑: 对不起,我不清楚。我使用Navicat GUI向表中添加数据
此外,我还发现,当任何新值添加到外键表中时,GUI会按字母顺序对其重新排序(因为外键表中没有索引可供排序)。它与insert into语句无关。要返回要作为top的值,可以在select语句中使用条件排序:
select *
from tablename
order by case when groupname = 'None' then 1 else 2 end
对于Mysql,这可以简化为:
order by groupname <> 'None'
这将首先返回包含“无”的行。将
groupname
更改为列的实际名称。表中没有顶级值。根据定义,表是无序的。在使用order by语句从表中检索数据时,您可以施加顺序。听起来像是关于如何设计列表框并以所需方式对条目进行排序的问题。请在表中使用排序列,然后您可以按它排序。i、 e.确保“none”是1,然后是“something,2,anything,3,more code,4 etc显示用于加载表的查询以及“表中的最大值”的含义。这在关系数据库中没有任何意义。
order by groupname = 'None' desc