Mysql 根据用户输入按邮政编码排序
我想按邮政编码排序,如果用户键入:L25 结果可能如下所示:Mysql 根据用户输入按邮政编码排序,mysql,sql,database,Mysql,Sql,Database,我想按邮政编码排序,如果用户键入:L25 结果可能如下所示: L12 L24 L25 L21 L22 L25 我希望用户输入“L25”显示在顶部,然后对其余的进行排序 例如: L25 L25 L12 L21 L22 L24 通过SQL查询可以做到这一点吗?我认为这应该可以做到: select MyColumn from MyTable order by case when MyColumn = 'L25' then 0 else 1 end, MyColumn SELECT
- L12
- L24
- L25
- L21
- L22
- L25
- L25
- L25
- L12
- L21
- L22
- L24
通过SQL查询可以做到这一点吗?我认为这应该可以做到:
select MyColumn
from MyTable
order by case when MyColumn = 'L25' then 0 else 1 end,
MyColumn
SELECT *
FROM yourTable
ORDER BY
CASE WHEN postcode LIKE @userinput THEN ''
ELSE postcode END
我认为这应该起作用:
SELECT *
FROM yourTable
ORDER BY
CASE WHEN postcode LIKE @userinput THEN ''
ELSE postcode END
为什么要在SQL查询中执行此操作?你只是让自己的生活变得艰难。在应用程序逻辑中执行此操作。为什么在SQL查询中执行此操作?你只是让自己的生活变得艰难。在应用程序逻辑中执行此操作。我担心这不会起作用,因为SQL将尝试将字符串“L25”转换为int,这将导致错误。然而,我使用的是SQL server,而不是mysql,所以可能我没有意识到一些差异…@Helena,不-它将L25与MyColumn进行比较,MyColumn是一个字符串,而不是Int(英国邮政编码是字符-例如L251AA-而不是像美国邮政编码那样的纯数字代码)。是的,马克,你是对的。我想编辑评论,但我已经将其全部删除并重新发布。。。很抱歉造成混淆。我担心这不起作用,因为SQL将尝试将字符串“L25”转换为int,这将导致错误。然而,我使用的是SQL server,而不是mysql,所以可能我没有意识到一些差异…@Helena,不-它将L25与MyColumn进行比较,MyColumn是一个字符串,而不是Int(英国邮政编码是字符-例如L251AA-而不是像美国邮政编码那样的纯数字代码)。是的,马克,你是对的。我想编辑评论,但我已经将其全部删除并重新发布。。。抱歉搞混了。