SQL截取字段进行模糊查询

SQL截取字段进行模糊查询

需求

关联查询中 对某个字段截取进行模糊查询

SQL

两种实现方式
本文采用第一种

SUBSTRING(string,position)

SUBSTRING函数从特定位置开始的字符串返回一个给定长度的子字符串
从1开始计数

SUBSTRING_INDEX(str,delim,count)

SUBSTRING_INDEX函数返回從字符串str分隔符 delim 在計數發生前的子字符串
如果計數是正的 則返回一切到最終定界符(從左邊算起)的左側
如果count是負數 則返回一切最終定界符(從右邊算起)的右側
SUBSTRING_INDEX搜尋在delim時進行區分大小寫的匹配

实现

1
2
3
4
5
SELECT a.id, b.user_id, a.name, a.info a.status, a.start_time, a.end_time
FROM a join b ON a.create_user = b.user_id
WHERE 1=1 AND
(a.name LIKE '%321%' OR SUBSTRING(info,3) LIKE '%321%')
ORDER BY job_id DESC LIMIT 0, 20

结论

MySQL提供的函数的强大
远超乎你的想象🤦‍♂️

# MySQL

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×