mysql的locate函数的用法和if

本文介绍了SQL中LOCATE函数的使用方法,包括定位字符串首次出现的位置及指定起始位置的情况,并展示了IF函数的多层嵌套使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

locate

1、可以用于判断某一个字段是否以什么来开头 locate‘开头的字符串’,列名称)
2、返回字符串substr中第一次出现子字符串的位置 str。LOCATE(substr,str)
3、返回字符串substr中第一个出现子 字符串的 str位置,从位置开始 pos。0 如果substr不在,则 返回str。返回 NULL如果substr 或者str是NULL。LOCATE(substr,str,pos)

if

if函数的使用(sql语句也支持多层嵌套的使用,这个类似于三木运算符)

          select
          if(IFNULL(county,'')='',if(IFNULL(city,'')='',province,city),county) as county,
          name,id
          from hospital
          where flag = '0'
### MySQL 重要内置函数及其用法 #### 字符串处理函数 字符串操作是数据库查询中最常见的需求之一。以下是几个重要的字符串处理函数: 1. **LOCATE()** - 功能:用于定位子字符串在目标字符串中的起始位置。 - 示例: ```sql SELECT LOCATE('bar', 'foobarbar'); -- 返回 4 SELECT LOCATE('bar', 'foobarbar', 5); -- 返回 7 ``` 这里 `LOCATE()` 的第三个参数表示从哪个字符开始查找[^2]。 2. **INSTR()** - 功能:类似于 `LOCATE()`,但它被认为是 `LOCATE()` 的别名。 - 示例: ```sql SELECT INSTR('foobarbar', 'bar'); -- 返回 4 ``` 3. **CONCAT()** - 功能:连接多个字符串并返回一个新的字符串。 - 示例: ```sql SELECT CONCAT('foo', 'bar', 'baz'); -- 返回 foobarbaz ``` 4. **SUBSTRING() 或 SUBSTR()** - 功能:提取字符串的一部分。 - 示例: ```sql SELECT SUBSTRING('Quadratically', 5, 6); -- 返回 drati ``` --- #### 数学运算函数 数学计算也是 SQL 查询中不可或缺的部分。以下是一些常用的数学函数: 1. **ABS()** - 功能:返回数值的绝对值。 - 示例: ```sql SELECT ABS(-9); -- 返回 9 ``` 2. **CEIL() FLOOR()** - 功能:分别向上取整向下取整。 - 示例: ```sql SELECT CEIL(1.2), FLOOR(1.8); -- 返回 2, 1 ``` 3. **ROUND()** - 功能:四舍五入到指定的小数位数。 - 示例: ```sql SELECT ROUND(1.298, 2); -- 返回 1.30 ``` --- #### 日期与时间函数 日期时间的操作在实际应用中非常频繁。以下是几个核心的时间函数: 1. **CURDATE(), CURRENT_DATE()** - 功能:返回当前系统的日期部分(不带时间)。 - 示例: ```sql SELECT CURDATE(); -- 假设今天是 2023-10-01,则返回 2023-10-01 ``` 2. **CURTIME(), CURRENT_TIME()** - 功能:返回当前系统的时间部分(不带日期)。 - 示例: ```sql SELECT CURTIME(); -- 假设现在是下午 3 点 30 分,则返回 15:30:00 ``` 3. **NOW(), SYSDATE(), LOCALTIME(), LOCALTIMESTAMP()** - 功能:返回完整的日期时间戳。 - 示例: ```sql SELECT NOW(); -- 假设当前时间为 2023-10-01 15:30:00,则返回该值 ``` 4. **UTC_DATE(), UTC_TIME()** - 功能:返回基于 UTC 的日期或时间。 - 示例: ```sql SELECT UTC_DATE(); -- 返回当天的 UTC 日期 ``` --- #### 条件判断函数 条件逻辑可以增强查询的灵活性。以下是两个主要的条件函数: 1. **IF()** - 功能:根据布尔表达式的真假返回不同的值。 - 示例: ```sql SELECT IF(1 > 2, 'True', 'False'); -- 返回 False ``` 2. **CASE WHEN THEN ELSE END** - 功能:实现更复杂的多分支条件判断。 - 示例: ```sql SELECT CASE WHEN 1 > 2 THEN 'A' WHEN 2 > 1 THEN 'B' ELSE 'C' END; -- 返回 B ``` --- #### 转换与格式化函数 数据转换格式化通常用于展示目的。以下是几个常见函数: 1. **CAST() CONVERT()** - 功能:将一种类型的值显式转换为另一种类型。 - 示例: ```sql SELECT CAST('123' AS UNSIGNED); -- 将字符串转为无符号整型 ``` 2. **FORMAT()** - 功能:按指定格式显示数字。 - 示例: ```sql SELECT FORMAT(12332.123456, 4); -- 返回 12,332.1235 ``` --- #### 数据聚合函数 当需要统计或汇总数据时,这些函数非常重要: 1. **COUNT()** - 功能:计数符合条件的记录数量。 - 示例: ```sql SELECT COUNT(*) FROM users; ``` 2. **SUM()** - 功能:求某一列所有值的总。 - 示例: ```sql SELECT SUM(salary) FROM employees; ``` 3. **AVG()** - 功能:计算平均值。 - 示例: ```sql SELECT AVG(age) FROM students; ``` 4. **MAX() MIN()** - 功能:找出最大值或最小值。 - 示例: ```sql SELECT MAX(price) FROM products; ``` --- #### 加密与哈希函数 安全性是一个永恒的话题,在存储敏感信息时经常需要用到加密功能: 1. **MD5()** - 功能:生成 MD5 散列值。 - 示例: ```sql SELECT MD5('password'); ``` 2. **SHA1() SHA2()** - 功能:生成更强的安全散列值。 - 示例: ```sql SELECT SHA1('password'), SHA2('password', 256); ``` --- ### 总结 以上列举了一些 MySQL 中最常使用的内置函数,涵盖了字符串、数学、日期时间、条件判断等多个方面。通过合理运用这些函数,能够显著提升 SQL 查询的能力效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值