sql 模糊查询方法 sql语句里like有没有反向用法?

2024-12-29 17:49:11
推荐回答(5个)
回答1:

在这种情况下可以换种思路.
可以不用like,而用 instr函数,而且instr函数的效率也优于like.

instr (str,substr) 返回子串substr在字符串str中的第一个出现的位置。如果substr不是在str里面,返回0。

所以 你就可以这样用了 判断:如果 instr(str2,str1)>0则说明 str1是str2 的一部分,如果instr(str2,str1)=0,那么str1就不是str2 的一部分.

希望对你有帮助.

回答2:

你的意思是不是aaabbbcccddd是一个字符串,str1是你表里的一个字段名,它里边有'aaa','bbb','ccc'这些值,你要判断str1的值是不是在字符串里?
sql server可以用这个函数charindex(str1,'aaabbbcccddd')>0表示就含有,返回的是子字符串的位置从零开始。
oracle里是(str1,'aaabbbcccddd')>0意义相同.

回答3:

下面方法试试:
SELECT * FROM 表 WHERE '字符串' LIKE CONCAT('%',字段,'%')

回答4:

这个要这么写:
Where ( '%'+str1+'%') like str2

回答5:

'1000300091800001' like F_CODE||'%'