mysql - 通过不给出正确的输出作为减号 (-) 大于加号 (+) 的 ascii 值来排序

标签 mysql sql select sql-order-by mysql-workbench

为什么我的表没有根据 ASCII 值给出正确的输出。我编写了类似 select * from patient1 order by BLOOD_GROUP DESC; 这样的查询,因此,据我所知,O-ve,O+ve,...将作为输出出现,但我的输出为 O+ve ,O-ve,... enter image description here

最佳答案

排序工作正常。 + 的 ASCII 码是43,-的ASCII码是 45,所以 +确实应该在 - 之前出现按字典序排列。

作为替代解决方案,您可以根据 blood_group 是否为真/假 bool 值进行排序。包含 -字符,然后在 blood_group 上本身所以你得到你的A在你的 B 之前小号:

SELECT   *
FROM     patient1
ORDER BY blood_group LIKE '%-%' DESC, blood_group

关于mysql - 通过不给出正确的输出作为减号 (-) 大于加号 (+) 的 ascii 值来排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53830533/

相关文章:

php - 将 MySQL 日期转换为友好字符串。

mysql - 根据 mysql 中的前几行更改值

sql - IN 语句中的 SELECT 子查询挂起 SQL Server

mysql 选择问题

jquery - 图像选择框而不是文本选择?

php - Laravel 5 Eloquent 字符集 utf8 问题

javascript - 如何避免 javascript 文本字段中的 SQL 注入(inject)?

sql - 用于显示来自(Mysql 数据库)的数据的 Excel 插件

php - MySql Select 查询返回错误结果

android - 如何将多行插入sqlite android