Php MYSQL查询:根据数字按输入用户排序

Php MYSQL查询:根据数字按输入用户排序,php,mysql,sql,Php,Mysql,Sql,我在mysql表中有记录。 用户可以给出自己的4号邮政编码,mysql查询需要根据输入的邮政编码对结果进行排序 例如,行'postalcode'>500050015002的三条记录 如果用户将5010作为输入,那么mysql查询输出需要为,以便首先显示包含5002的行 有人能帮我吗?我尝试了搜索功能,但我认为我没有使用正确的英语术语来表达我的意思 不确定数据集的设置准确程度。。但是你可以做一个有条件的排序 ORDER BY CASE WHEN postalcode < your_c

我在mysql表中有记录。 用户可以给出自己的4号邮政编码,mysql查询需要根据输入的邮政编码对结果进行排序

例如,行'postalcode'>500050015002的三条记录 如果用户将5010作为输入,那么mysql查询输出需要为,以便首先显示包含5002的行


有人能帮我吗?我尝试了搜索功能,但我认为我没有使用正确的英语术语来表达我的意思

不确定数据集的设置准确程度。。但是你可以做一个有条件的排序

ORDER BY
    CASE WHEN postalcode < your_code THEN 1
         WHEN postalcode = your_code THEN 2
         WHEN postalcode > your_code THEN 3
         ELSE 4
    END
orderby
postalcode<您的\u代码然后为1时的情况
当postalcode=您的\u代码时,则为2
当postalcode>您的_代码时,则为3
其他4
结束
逻辑很可能需要改变,但这是总体思路。。其中1在3之前的2之前。。你可以改变它的模具,但你需要它。。但是没有数据和表模式,我仅限于此


为什么5010意味着5002在5001之前?是降序的吗?我有一个叫做交易的标签。在那张桌子上有三排。id-title-postal示例:9-Superdeal-5001 10-Dealicious-6040当用户提交他的4digit postal时,sql输出需要首先显示靠近他的邮政数字。因此,如果用户提交6000,则输出需要首先是id 10,然后是id 9。