表格看起来像这样
<input
type="number"
ng-model="validNumber"
required
min="10"
max="20"
ng-model-options="{ allowInvalid: true }"
/>
但在尝试使用
进行排序时ID | name
----------------
1 | season 1 episode 1
1 | season 1 episode 2
1 | season 1 episode 3
* | *
* | *
1 | season 1 episode 10
1 | season 2 episode 1
1 | season 2 episode 2
1 | season 2 episode 3
* | *
* | *
1 | season 2 episode 10
2 | season 1 episode 1
2 | season 1 episode 2
2 | season 1 episode 3
* | *
* | *
2 | season 1 episode 10
* | *
表格按错误的顺序对10,11,12等进行排序
答案 0 :(得分:0)
您会看到此结果,因为它排序字符串,而不是整数。所以它分别检查每个角色。首先采用10中的1,并且因为1小于2,所以在2之前对其进行排序,即使其自身发生2也是如此。只有这样才能进入0.它不知道你打算将它作为一个数字。这只是起作用,因为字符串的其余部分总是相同的长度。如果你开始有第10季等,它可能会变得更糟。
解决方案是将您的名字字段分成两个整数字段 - &#34; season&#34;和#34;插曲&#34;。只需填写相关数字即可。剧集通常有一个单独的描述性标题,如果你有,你可以在字符串字段中保存。
然后,您可以在查询中执行ORDER BY season, episode
,以便按正确的顺序获取它们。如果您希望向用户显示当前名称字段中显示的文字,则可以在查询中执行SELECT "season" + CAST(season as CHAR(50)) + " episode " + CAST(episode as CHAR(50))
之类的操作。
答案 1 :(得分:-1)
试试这个
SELECT * FROM `episodes` ORDER BY `ID`, CHAR_LENGTH(`name`)