У меня проблема, я не знаю, как ее решить. У меня есть этот запрос:
$sql = "SELECT * FROM transfer_centre WHERE status = 'out' ORDER BY pris DESC";
И у меня есть четыре значения как pris
в моем db: 0, 4, 8, 26
Поэтому, поскольку в запросе указано, что они должны быть перечислены как таковые:
Но почему-то он видит значение 26 как 2.6 (я думаю?), И поэтому 26 находится между 4 и 0?
Может ли кто-нибудь помочь мне в этом вопросе?
Похоже, что ваша колонка - тип VARCHAR, и она упорядочивается как она. Когда вы заказываете VARCHAR, вы перемещаетесь слева направо на каждом символе, поэтому 26 находится между 0 и 4.
Вы можете попробовать это, если вы не можете изменить свою схему:
SELECT * FROM transfer_centre WHERE status = 'out' ORDER BY CAST(pris as SIGNED INTEGER) DESC
ПРИМЕЧАНИЕ. Это даже не близко от идеального решения! Если столбец рассматривается как число, вы должны изменить схему, применяя нужный тип.