Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 根据用户输入按邮政编码排序_Mysql_Sql_Database - Fatal编程技术网

Mysql 根据用户输入按邮政编码排序

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

我想按邮政编码排序,如果用户键入: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 * 
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-而不是像美国邮政编码那样的纯数字代码)。是的,马克,你是对的。我想编辑评论,但我已经将其全部删除并重新发布。。。抱歉搞混了。