我有一个奇怪的问题。我在mysql中尝试了这个命令:
SELECT `type`,
`bought`
FROM cars
WHERE owner = 'test'
ORDER BY type
它在phpmyadmin中打印出来:
type bought
--------------------
17 1281025497
22 1287708417
22 1287347244
24 1287708324
24 1287876461
6 1287896659
9 1287847238
这没有任何意义。 17大于22且小于6?9。
答案 0 :(得分:16)
看起来类型列的类型绝对是varchar或text(或任何字符串类型,确实如此)。您 使用整数类型。 字符串“10”小于字符串“6”(1来自6之前)是完全正常的。
如果您确实不想更改列的类型,可以将其转换为整数。
答案 1 :(得分:5)
SELECT `type`, `bought` FROM cars WHERE owner='test' ORDER BY CAST(`type` AS SIGNED)
答案 2 :(得分:0)
如果type
是char
字段,那是正确的。
如果他们是字符,你没有比较数字 6和24,你要比较字符串“6”和“24”。
“6”大于“2”,所以它来了。