mysql 字符串转数值然后选取做大的值

本文介绍了两种SQL查询优化技巧:直接使用加法操作和使用CAST/CONVERT函数进行类型转换,以提高数据排序的效率。在实战示例中,展示了如何在orders表中根据service_id进行降序排序。这些方法对于大数据处理和数据库性能优化至关重要。
摘要由CSDN通过智能技术生成

1.直接用加法

  字符串+0

eg:

  select * from orders order by (mark+0) desc

2.使用函数

CAST(value as type);

CONVERT(value, type);

注:

  这里的type可以为:

    浮点数 : DECIMAL 
    整数 : SIGNED
    无符号整数 : UNSIGNED 

eg:

  select * from orders order by CONVERT(mark,SIGNED) desc

  select * from orders order by CAST(mark as SIGNED) desc

实战

select * from srv_services order by (service_id+0)  desc

以下是使用SQL语言实现以上函数的示例代码: 1. 计算字符串长度 ```sql SELECT LENGTH("Hello World!"); -- 输出结果为 12 SELECT LENGTH("University"); -- 输出结果为 10 ``` 2. 获字符串 ```sql SELECT SUBSTRING("Nice to meet you!", 6, 4); -- 输出结果为 meet ``` 3. 重复输出字符串 ```sql SELECT REPEAT("Cheer!", 3); -- 输出结果为 Cheer!Cheer!Cheer! ``` 4. 字符串逆序输出 ```sql SELECT REVERSE("voodoo"); -- 输出结果为 oodoov ``` 5. 按顺序排列字符串选取部分组成新字符串 ```sql SELECT CONCAT("MySQL", "is", "great", "not") AS str FROM (SELECT 1 AS id UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) t WHERE id IN (1, 3, 4) ORDER BY id; -- 输出结果为 MySQLgreatnot ``` 6. 计算日期相关信息 ```sql SELECT WEEK(CURDATE()) AS week_of_year, DAYOFYEAR(CURDATE()) AS day_of_year, DAYNAME(CURDATE()) AS day_of_week, DAYOFWEEK(CURDATE()) AS day_in_week, DAYOFWEEK(CURDATE()) + ((WEEK(CURDATE()) - 1) * 7) - 1 AS day_in_workweek; -- 输出结果为 当前日期是第32周,第2天,星期二,一周中的第2天,第8个工作日 ``` 7. 查看当前连接状态 ```sql SHOW PROCESSLIST; ``` 8. 加密字符串 ```sql SELECT ENCODE("MySQL", "secret_key") AS encoded_str; -- 加密字符串 SELECT DECODE(encoded_str, "secret_key") AS decoded_str; -- 解密字符串 ``` 9. 将十进制换为十六进制 ```sql SELECT HEX(100); -- 输出结果为 64 ``` 10. 格式化数值 ```sql SELECT ROUND(5.1584, 3); -- 输出结果为 5.158 ``` 11. 修改字符串字符集 ```sql SELECT CONVERT("new string" USING gb2312); -- 将字符串的字符集换为 gb2312 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值