【问题标题】:mysql alphabetical ordermysql 按字母顺序
【发布时间】:2021-03-18 16:52:40
【问题描述】:

我正在尝试按字母顺序对mysql数据进行排序

一个 |乙| C | D

当我点击 B 时,此查询运行

按“b”从用户订单中选择名称

但结果显示所有以 a 或 c 或 d 开头的记录我只想显示以 b 开头的记录

感谢帮助

【问题讨论】:

    标签: mysql


    【解决方案1】:

    我只想显示以 b 开头的记录

    select name from user where name LIKE 'b%';
    

    我正在尝试按字母顺序对 MySQL 数据进行排序

    select name from user ORDER BY name;
    

    我正在尝试以相反的字母顺序对 MySQL 数据进行排序

    select name from user ORDER BY name desc;
    

    【讨论】:

      【解决方案2】:

      但结果显示所有记录 以 a 或 c 或 d 开头我想 仅显示以 b 开头的记录

      在这种情况下你应该使用WHERE

      select name from user where name = 'b' order by name
      

      如果您想允许正则表达式,您也可以在此处使用LIKE 运算符。示例:

      select name from user where name like 'b%' order by name
      

      这将选择以b 开头的记录。另一方面,以下查询将选择在列中任何位置找到b 的所有行:

      select name from user where name like '%b%' order by name
      

      【讨论】:

        【解决方案3】:

        你可以使用:

        SELECT name FROM user WHERE name like 'b%' ORDER BY name
        

        【讨论】:

          【解决方案4】:

          如果要限制查询返回的行,则需要使用WHERE 子句,而不是ORDER BY 子句。试试

          select name from user where name like 'b%'
          

          【讨论】:

            【解决方案5】:

            在按字母顺序排列数据时,您不需要使用 where 子句。 这是我的代码

            SELECT * FROM tbl_name ORDER BY field_name
            

            就是这样。 它按字母顺序返回数据,即;从A到Z。 :)

            【讨论】:

              【解决方案6】:

              通配符与like子句一起用于对记录进行排序。

              如果我们要搜索一个以 B 开头的字符串,那么代码如下:

              select * from tablename where colname like 'B%' order by columnname ;

              如果我们想搜索一个以 B 结尾的字符串,那么代码如下: select * from tablename where colname like '%B' order by columnname ;

              如果我们想搜索一个包含 B 的字符串,那么代码如下: select * from tablename where colname like '%B%' order by columnname ;

              如果我们要搜索第二个字符为 B 的字符串,则代码如下: select * from tablename where colname like '_B%' order by columnname ;

              如果我们要搜索第三个字符为 B 的字符串,则代码如下: select * from tablename where colname like '__B%' order by columnname ;

              注意:一个字符一个下划线。

              【讨论】:

                【解决方案7】:

                我也遇到过同样的挑战,但经过一番研究后,我想出了这个,它给了我想要的东西,我能够克服这条路。

                SELECT * from TABLE ORDER BY name
                

                【讨论】:

                • 此答案如何添加新内容?
                【解决方案8】:

                我尝试使用查询对数据进行排序,它对我来说很好,请试试这个:

                select name from user order by name asc 
                

                也试试下面按字母顺序查询搜索记录

                SELECT name  FROM `user` WHERE `name` LIKE 'b%' 
                

                【讨论】:

                • 此答案与所有​​其他答案相同。你为什么要发布它?
                • @LuFFy 你为什么编辑这篇文章?第一部分不是问题的答案(并且已在接受的答案中提供),第二部分只是复制所有其他答案。
                • 我刚刚格式化了答案。您可以通过点击edited 链接来查看差异。
                • @LuFFy 抱歉回复晚了。 (你忘了“ping”我;))我的意思是这个答案应该被删除。您是否知道编辑会将问题从 LQP 审核队列中排除,取消当前投票并使其保持未删除状态?从工具提示"Edit if you can fix all questions with this answer"可以看出,如果需要保留答案,你应该只选择Edit。作为其他答案的副本的答案,没有任何额外的有用信息,在最坏的情况下是抄袭,在最好的情况下是“噪音”。它们应该被删除。
                • @LuFFy 选择 Edit 应保留在您绝对确定您的编辑将一个值得删除的答案转换为一个不是(例如,为仅链接的答案添加适当的信息),或改进真正的低质量答案,使其不再低质量(例如,修复语法/拼写/标点符号/大写/格式难以理解,可能没有代码,答案)。您还必须检查答案是否真的试图回答问题并且不是现有答案的副本......
                【解决方案9】:

                MySQL 解决方案:

                select Name from Employee order by Name ;
                

                Order by 将名称从 a 到 z 排序。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-04-17
                  • 1970-01-01
                  相关资源
                  最近更新 更多