【发布时间】:2014-10-28 12:56:47
【问题描述】:
我的 SQL 查询有问题。我希望我的结果按升序排序,但问题是数据库只根据第一个数字对我的结果进行排序,而从逻辑上讲,例如 2 应该在 19 之前。
这是我的请求和完全不成功的结果截图:
SELECT * FROM mail WHERE titre LIKE '%$mot%' ORDER BY mail.titre ASC
我想要的是所有这样排序的结果:1 2 3 4 5 ... 101 102 103 ... 8845 8850 ... 等等。
你对这个问题有什么想法吗?
问候。
【问题讨论】:
-
我猜你用敏感数据切除了部分,但你的记录似乎是字符串,数据由管道字符分隔。您必须首先只取第一个管道之前的部分并将其转换为 int,或者只需找到管道的位置“i”并在字符串之前连接 n-i 个零并按字母顺序排列,其中“n”足够大以产生结果字符串大于第一列中的任何值。
标签: php mysql sql sorting sql-order-by