【问题标题】:MYSQL query: Sort by input user based on numbersMYSQL查询:按输入用户根据数字排序
【发布时间】:2014-09-16 14:45:31
【问题描述】:

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

例如,“邮政编码”行的三个记录 > 5000、5001、5002 如果用户提供 5010 作为输入,则 mysql 查询输出需要使 5002 的行首先显示。

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

【问题讨论】:

  • 为什么 5010 意味着 5002 在 5001 之前?是降序吗?

标签: php mysql sql


【解决方案1】:

不确定你的数据集是如何设置的。但你可以做一个有条件的订单

ORDER BY
    CASE WHEN postalcode < your_code THEN 1
         WHEN postalcode = your_code THEN 2
         WHEN postalcode > your_code THEN 3
         ELSE 4
    END

逻辑很可能需要改变,但这是一般的想法.. 1 在 2 之前,在 3 之前.. 您可以将其更改为模具,但是您需要它.. 但没有数据和我的表架构仅限于此

DEMO

【讨论】:

  • 我有一个名为交易的表格。在该表中 3 行。 id - title - postal 示例:9 - Superdeal - 5001 10 - Dealicious - 6040 当用户提交他的 4digit 邮政时,sql 输出需要首先显示靠近他的邮政数字。因此,如果用户提交 6000,则输出需要首先是 id 10,然后是 id 9。
猜你喜欢
  • 2017-09-24
  • 1970-01-01
  • 1970-01-01
  • 2020-02-15
  • 1970-01-01
  • 1970-01-01
  • 2021-08-09
  • 2020-08-31
  • 1970-01-01
相关资源
最近更新 更多