Maison > Questions et réponses > le corps du texte
SELECT co.id, IFNULL( oe.follow_status, 'unFollow' ) AS followStatus, co.due_time FROM car_order co LEFT JOIN order_expire oe ON oe.order_id = co.id WHERE co.type = '贷款' AND co.STATUS = '已放款' AND co.approve_status != '结清成功' AND date_FORMAT( co.due_time, '%Y-%m-%d' ) <= '2022-10-29' ORDER BY field( oe.follow_status, 'unFollow', 'follow' ), co.due_time DESC, co.id DESC
Mauvais tri des dates. Comment dois-je l’écrire ?
P粉4404536892024-04-05 11:17:25
SELECT co.id, IFNULL( oe.follow_status, 'unFollow' ) AS followStatus, co.due_time FROM car_order co LEFT JOIN order_expire oe ON oe.order_id = co.id WHERE co.type = '贷款' AND co.STATUS = '已放款' AND co.approve_status != '结清成功' AND co.due_time <= '2022-10-29' ORDER BY field( followStatus, 'unFollow', 'follow' ), co.due_time DESC, co.id DESC
Vous devriez plutôt trier par l'alias IFNULL followStatus.
P粉0644484492024-04-05 00:21:23
En supposant que due_time
est une colonne d'horodatage, vous devriez pouvoir la comparer directement à un littéral de date :
SELECT co.id, IFNULL(oe.follow_status, 'unFollow') AS followStatus, co.due_time FROM car_order co LEFT JOIN order_expire oe ON oe.order_id = co.id WHERE co.type = '贷款' AND co.STATUS = '已放款' AND co.approve_status != '结清成功' AND co.due_time <= '2022-10-29' ORDER BY FIELD(oe.follow_status, 'unFollow', 'follow'), co.due_time DESC, co.id DESC;La fonction
DATE_FORMAT()
est utilisée pour convertir la date/horodatage en chaîne, mais elle n'est pas nécessaire ici car les colonnes date/horodatage peuvent être comparées directement.