patindex送个分

geniuswjt 2011-08-25 05:13:22
patindex如果想判断和多个不同长短的词组匹配怎么办?
比如想匹配col中包含'你好'或'我'或'你妹'或'我勒个去'的用patindex怎么办?
...全文
190 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
geniuswjt 2011-08-30
  • 打赏
  • 举报
回复
看来还是要换方式
geniuswjt 2011-08-25
  • 打赏
  • 举报
回复
patindex('%[你好我你妹我勒个去]%',MSG)>0
直接这样是匹配每个字的,不是组合...[Quote=引用 11 楼 guoweifyj 的回复:]
SQL code

select *
from TEST
where patindex('%[你好我你妹我勒个去]%',MSG)>0
/*全分解了..任意匹配
莫愁,你还小,尚不知人心难测啊...
你好吗?
我大概不是很好,你妹
我勒个去啊

(4 行受影响)
[/Quote]
怪众生太美丽 2011-08-25
  • 打赏
  • 举报
回复

select *
from TEST
where patindex('%[你好我你妹我勒个去]%',MSG)>0
/*全分解了..任意匹配
莫愁,你还小,尚不知人心难测啊...
你好吗?
我大概不是很好,你妹
我勒个去啊

(4 行受影响)

怪众生太美丽 2011-08-25
  • 打赏
  • 举报
回复

--查询
select *
from S
where patindex('%[高波飞]%',SNAME)>0
/*结果
S# SNAME AGE SEX
--------------- ---------- ----------- ----
040405028 张波 20 F
200510405104 高博 22 男
200510405105 筵永飞 23 男
200510405106 董广飞 21 男
200510405108 赵虎波 22 男

(5 行受影响)
*/
-----好像有点问题是全分解了..不知道怎么一个词一个词匹配
CREATE TABLE TEST(MSG VARCHAR(40))
INSERT INTO TEST(MSG)
SELECT '你好吗?'
UNION
SELECT '我大概不是很好,你妹'
UNION
SELECT '浮游,不知所求;猖狂,不知所往.'
UNION
SELECT '我勒个去啊'
UNION
SELECT '莫愁,你还小,尚不知人心难测啊...'
-----
SELECT * FROM TEST
/*MSG
----------------------------------------
浮游,不知所求;猖狂,不知所往.
莫愁,你还小,尚不知人心难测啊...
你好吗?
我大概不是很好,你妹
我勒个去啊

(5 行受影响)*/
--
select *
from TEST
where patindex('%[我你妹我勒个去]%',MSG)>0
/*
MSG
----------------------------------------
莫愁,你还小,尚不知人心难测啊...
你好吗?
我大概不是很好,你妹
我勒个去啊

(4 行受影响)
geniuswjt 2011-08-25
  • 打赏
  • 举报
回复
真心求解sql正则怎么或。。。
geniuswjt 2011-08-25
  • 打赏
  • 举报
回复
java中好像用|表示或
sql木有么?
xyytuo 2011-08-25
  • 打赏
  • 举报
回复
geniuswjt 2011-08-25
  • 打赏
  • 举报
回复
正则没学好,弱弱的问一句,正则也是不能判断不同长短的是么?
geniuswjt 2011-08-25
  • 打赏
  • 举报
回复
额,用or效率就下来了吧,几个or就查几次额
--小F-- 2011-08-25
  • 打赏
  • 举报
回复
用or连接
叶子 2011-08-25
  • 打赏
  • 举报
回复

declare @t table (col varchar(10))
insert into @t
select '你好吗' union all
select '我不好' union all
select '你妹好吗' union all
select '我勒个去' union all
select '内容不文明' union all
select '有点' union all
select '我走了'

select * from @t
where patindex('%你好%', col) <> 0
or patindex('%我%', col) <> 0
or patindex('%你妹%', col) <> 0
or patindex('%我勒个去%', col) <> 0
/*
col
----------
你好吗
我不好
你妹好吗
我勒个去
我走了
*/
AcHerat 元老 2011-08-25
  • 打赏
  • 举报
回复
额。。。有点问题!
AcHerat 元老 2011-08-25
  • 打赏
  • 举报
回复
declare @str varchar(20)
set @str = '你真的我嘞个去别啥着纠结完了吧孩子缴枪哎呀泥巴是李刚额我信了'

select (case when patindex('%[我嘞个去,纠结]%',@str)>0 then 1 else 0 end)

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧