Java 从mysql按选择(排序)排序

Java 从mysql按选择(排序)排序,java,mysql,sql,Java,Mysql,Sql,我想对gwtr.QuestionId进行排序。但我得到了未排序的问号,尽管我提到了问号ASC的顺序 SELECT r.QuestionId, s.NAME AS Subject, d.value AS variant, r.Username, r.UserAnswer, r.Correctanswer, r.ExamTimeLine, r.Createtime FROM resultlog r IN

我想对gwtr.QuestionId进行排序。但我得到了未排序的问号,尽管我提到了问号ASC的顺序

SELECT r.QuestionId,
       s.NAME AS Subject,
       d.value AS variant,
       r.Username,
       r.UserAnswer,
       r.Correctanswer,
       r.ExamTimeLine,
       r.Createtime
FROM resultlog r
INNER JOIN test_table t ON t.ID = r.QuestionId
INNER JOIN subject s ON s.ID= t.SUBJECT
INNER JOIN DICTIONARY d ON d.ID = t.Variant
WHERE r.Username LIKE 'Islam Ismayilov'
  AND r.Createtime > NOW() - INTERVAL 5 MINUTE
ORDER BY r.QuestionId ASC ;
上述代码的代码结果:


QuestionId
将显示为字符串,而不是数字

一种方法使用隐式转换将值转换为数字:

order by (r.QuestionId + 0) ASC
如果id看起来像一个数字,您可能应该将其声明为一个数字。这有几个优点:

  • 它可以正确地进行排序
  • 您可以使用
    auto_increment
    自动设置值
  • 它总是占用4个字节,便于索引和外键引用

使用正确的数据类型;经常看到normalisationthx。它按您的工作方式工作:按(r.QuestionId+0)ASC排序