sqlserver数据库中怎样查询某个字段中含有某些字

xiaxia 2012-03-04 09:18:41

比如“一元天”这些字的顺序可以是任意的,而且也可以不相邻,把所有的情况都查询出来
...全文
6839 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaxia 2012-03-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 abbey 的回复:]
CSDN又抽风了,格式UBB没用了?

类似这样的一条查询

SQL code

SELECT * FROM OneTable WHERE CHARINDEX(N'一', Field)>0
AND CHARINDEX(N'元', Field)>0
……
[/Quote]
谢谢了大家
xiaxia 2012-03-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 abbey 的回复:]
请看我4楼的回答,那应该是你需要的。
[/Quote]
那是把or换成and 是吧?
呵呵,鄙人目前大二用的是access数据库以前没学过,有点愚钝,恳请指教
老毕 2012-03-04
  • 打赏
  • 举报
回复
请看我4楼的回答,那应该是你需要的。
xiaxia 2012-03-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xll617 的回复:]
你这么写 必须得三个字全有的能查出来

SELECT * FROM OneTable
WHERE CHARINDEX(N'一', Field)>0
OR CHARINDEX(N'元', Field)>0
OR CHARINDEX(N'天', Field)>0
[/Quote]
为什么中间不用and 要用“or”呢
xiaxia 2012-03-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 abbey 的回复:]
引用 6 楼 xll617 的回复:

你这么写 必须得三个字全有的能查出来

SELECT * FROM OneTable
WHERE CHARINDEX(N'一', Field)>0
OR CHARINDEX(N'元', Field)>0
OR CHARINDEX(N'天', Field)>0


“比如“一元天”这些字的顺序可以是任意的,而且也可以不相邻,把所有的情况都查……
[/Quote]
是的,必须全部字符都有才可以顺序和相邻的条件可以不考虑
老毕 2012-03-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xll617 的回复:]

你这么写 必须得三个字全有的能查出来

SELECT * FROM OneTable
WHERE CHARINDEX(N'一', Field)>0
OR CHARINDEX(N'元', Field)>0
OR CHARINDEX(N'天', Field)>0
[/Quote]

比如“一元天”这些字的顺序可以是任意的,而且也可以不相邻,把所有的情况都查询出来

这里只提到顺序和是否相邻,再参见2楼的补充,难道不是要全部字符都有的才算匹配吗?
xll617 2012-03-04
  • 打赏
  • 举报
回复
你这么写 必须得三个字全有的能查出来

SELECT * FROM OneTable
WHERE CHARINDEX(N'一', Field)>0
OR CHARINDEX(N'元', Field)>0
OR CHARINDEX(N'天', Field)>0
EnForGrass 2012-03-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chenqianle 的回复:]

但是“。。。一。。。元。。。天。。。”
“天;;;;元。。。一。。。”等好多情况都没查询出来
[/Quote]


DECLARE @table TABLE
(
tid INT,
tname VARCHAR(50)
)
INSERT INTO @table
SELECT 1,'一元天' UNION
SELECT 2,'元天' UNION
SELECT 3,'一天' UNION
SELECT 4,'元天' UNION
SELECT 5,'天' UNION
SELECT 6,'元' UNION
SELECT 7,'一' UNION
SELECT 8,'一天元'
SELECT * FROM @table WHERE tname LIKE '%一%' OR tname LIKE '%元%' OR tname LIKE '%天%'
/*
tid tname
----------- ---------
1 一元天
2 元天
3 一天
4 元天
5 天
6 元
7 一
8 一天元

(8 行受影响)
*

老毕 2012-03-04
  • 打赏
  • 举报
回复
CSDN又抽风了,格式UBB没用了?

类似这样的一条查询
SELECT * FROM OneTable WHERE CHARINDEX(N'一', Field)>0
AND CHARINDEX(N'元', Field)>0
AND CHARINDEX(N'天', Field)>0
老毕 2012-03-04
  • 打赏
  • 举报
回复
这样的查询真的是有些蛋疼

那就查询字段值 (包含“一”) AND (包含 “元”) AND( 包含“天”)的行吧。
xiaxia 2012-03-04
  • 打赏
  • 举报
回复
但是“。。。一。。。元。。。天。。。”
“天;;;;元。。。一。。。”等好多情况都没查询出来
EnForGrass 2012-03-04
  • 打赏
  • 举报
回复
用模糊查询%,组合
比如 select usersname from UsersType where username like '%一元天%'

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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