以下是20个MySQL高频函数,每个函数包含详细的说明、使用场景和示例代码。这些函数涵盖了更复杂的字符串处理、数值计算、日期时间处理、聚合函数等需求。
1. REGEXP 和 RLIKE
说明:使用正则表达式进行模式匹配。
使用场景:复杂字符串匹配,如验证电子邮件格式。
示例代码:
SELECT email
FROM users
WHERE email REGEXP '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$';代码解释:使用正则表达式验证电子邮件格式。
2. SUBSTRING_INDEX()
说明:根据分隔符提取子字符串。
使用场景:提取路径中的文件名或域名。
示例代码:
SELECT SUBSTRING_INDEX(url, '/', -1) AS filename
FROM files;代码解释:提取URL中的最后一个部分作为文件名。
3. LPAD() 和 RPAD()
说明:在字符串左侧或右侧填充字符。
使用场景:格式化字符串,如填充数字前导零。
示例代码:
SELECT LPAD(price, 10, '0') AS padded_price
FROM products;代码解释:将price字段填充到10位,不足的部分用0填充。
4. TRUNCATE()
说明:截断数值到指定的小数位。
使用场景:精确控制数值的小数位数。
示例代码:
SELECT TRUNCATE(price, 1) AS truncated_price
FROM products;代码解释:将price字段截断到一位小数。
5. ABS()
说明:返回数值的绝对值。
使用场景:处理负数。
示例代码:
SELECT ABS(balance) AS absolute_balance
FROM accounts;代码解释:将balance字段的负数转换为正数。
6. FIND_IN_SET()
说明:检查字符串是否在逗号分隔的字符串列表中。
使用场景:验证字符串是否存在于列表中。
示例代码:
SELECT NAME
FROM
products
WHERE
FIND_IN_SET( 'Electronics', categories ) > 0;代码解释:检查categories字段中是否包含Electronics。
7. POW() 和 SQRT()
说明:计算幂和平方根。
使用场景:数学计算。
示例代码:
SELECT POW(2, 3) AS power_result, SQRT(16) AS sqrt_result;
代码解释:计算2的3次方和16的平方根。
8. MOD()
说明:计算余数。
使用场景:判断奇偶数。
示例代码:
SELECT MOD(id, 2) AS is_odd
FROM employees;代码解释:判断id字段是否为奇数(1表示奇数,0表示偶数)。
9. GREATEST() 和 LEAST()
说明:返回最大值和最小值。
使用场景:比较多个值。
示例代码:
SELECT GREATEST(price1, price2, price3) AS max_price, LEAST(price1, price2, price3) AS min_price
FROM products;代码解释:返回price1, price2, price3中的最大值和最小值。
10. TIMESTAMPADD()
说明:向日期或时间添加时间间隔。
使用场景:计算未来的日期或时间。
示例代码:
SELECT TIMESTAMPADD(DAY, 10, order_date) AS future_date
FROM orders;代码解释:将order_date字段加上10天。
11. DATE_SUB()
说明:从日期或时间减去时间间隔。
使用场景:计算过去的日期或时间。
示例代码:
SELECT DATE_SUB(order_date, INTERVAL 1 MONTH) AS past_date
FROM orders;代码解释:将order_date字段减去1个月。
12. YEAR(), MONTH(), DAY()
说明:提取日期中的年、月、日。
使用场景:单独使用日期的某个部分。
示例代码:
SELECT YEAR(order_date) AS order_year, MONTH(order_date) AS order_month, DAY(order_date) AS order_day
FROM orders;代码解释:提取order_date字段的年、月、日。
13. EXTRACT()
说明:从日期或时间中提取部分值。
使用场景:提取日期的特定部分。
示例代码:
SELECT EXTRACT(YEAR FROM order_date) AS order_year, EXTRACT(MONTH FROM order_date) AS order_month
FROM orders;代码解释:提取order_date字段的年和月。
14. UNIX_TIMESTAMP() 和 FROM_UNIXTIME()
说明:转换日期和时间戳。
使用场景:处理时间戳。
示例代码:
SELECT UNIX_TIMESTAMP(order_date) AS timestamp, FROM_UNIXTIME(1633072800) AS date_from_timestamp
FROM orders;代码解释:将order_date字段转换为时间戳,将时间戳转换为日期。
15. GROUP BY 和 HAVING
说明:分组和过滤分组结果。
使用场景:统计和过滤分组数据。
示例代码:
SELECT category_id, COUNT(*) AS product_count
FROM products
GROUP BY category_id
HAVING product_count > 5;代码解释:统计每个类别的产品数量,并过滤出产品数量大于5的类别。
16. JOIN 操作
说明:连接多个表。
使用场景:获取相关联的数据。
示例代码:
SELECT orders.order_id, customers.name
FROM orders
JOIN customers ON orders.customer_id = customers.customer_id;代码解释:连接orders表和customers表,获取订单ID和客户名称。
17. LEFT JOIN 和 RIGHT JOIN
说明:左连接和右连接。
使用场景:获取左表或右表的所有记录。
示例代码:
SELECT orders.order_id, customers.name
FROM orders
LEFT JOIN customers ON orders.customer_id = customers.customer_id;代码解释:获取所有订单及其对应的客户名称,即使客户不存在。
18. INNER JOIN 和 FULL OUTER JOIN
说明:内连接和全外连接。
使用场景:获取两个表的交集或并集。
示例代码:
SELECT orders.order_id, customers.name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;代码解释:获取订单和客户名称的交集。
19. DISTINCT
说明:去除重复记录。
使用场景:获取唯一的记录。
示例代码:
SELECT DISTINCT city
FROM customers;代码解释:获取所有唯一的客户城市。
20. ORDER BY 和 LIMIT
说明:排序和限制结果集。
使用场景:获取排序后的前几条记录。
示例代码:
SELECT name, price
FROM products
ORDER BY price DESC
LIMIT 5;代码解释:按价格降序排列产品,并获取前5条记录。
这些MySQL函数涵盖了更复杂的字符串处理、数值计算、日期时间处理、聚合函数和连接操作。深入理解并熟练运用将使你的SQL写得更加简洁和高效。
匿名
2025-11-09
https://collaigo.com 免费在线拼图工具
匿名
2025-10-22
盖楼盖楼!
匿名
2025-08-11
沙发沙发
匿名
2025-08-10
https://at.oiik.cn/bing.html
匿名
2025-02-21
实用,我在开发https://minmail.app/时候使用到了
王飞翔
2024-12-30
亲爱的朋友:您好!中国疫情持续蔓延,很多人症状非常严重持久不愈,医院人满为患,各年龄段随地倒猝死的现象暴增,多省感染手足口、甲流、乙流、支原体、合胞及腺病毒的儿童不断攀升,目前各种天灾人祸,天气异象频发。古今中外的很多预言都说了这几年人类有大灾难,如刘伯温在预言中说 “贫者一万留一千,富者一万留二三”,“贫富若不回心转,看看死期到眼前”, 预言中也告诉世人如何逃离劫难的方法,真心希望您能躲过末劫中的劫难,有个美好的未来,请您务必打开下方网址认真了解,内有躲避瘟疫保平安的方法。网址1:https://github.com/1992513/www/blob/master/README.md?abhgc#1 网址2:bitly.net/55bbbb 网址3:https://d3ankibxiji86m.cloudfront.net/30gj 如打不开请多换几个浏览器试