查询多个Like条件

Cwst 2009-02-23 03:49:04
两张表Order和SearchCond
Order有一列City用来存储城市如北京
SearchCond有一列SCond字符型

现在Order表中有板有三笔记录
北京
北京市


SearchCond表中有两笔记录

北京

SELECT City FROM Order
WHERE City IN(SELECT SCond FROM SearchCond)

我使用上面的查询,只能查到两笔记录,北京市查不出来
上面的查询应该是不对的,可能是这样
SELECT City FROM Order WHERE City LIKE '%京%' OR City LIKE '%北京%'

以第二张表的记录来做为第一张表的Like条件,怎么写.后续还要考虑速度.
哪位高人帮忙一下,谢谢.
...全文
1930 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2009-02-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dawugui 的回复:]
select m.* from [Order] m , SearchCond n where chindex(n.SearchCond , m.City) > 0
[/Quote]

[Quote=引用 3 楼 dawugui 的回复:]
SQL codeselect distinct m.* from [Order] m , SearchCond n where chindex(n.SearchCond , m.City) > 0

select distinct m.* from [Order] m , SearchCond n where m.City like '%' + n.SearchCond + '%'
[/Quote]

字段错了, chindex写错了,应该是charindex

7楼更正过来了,不好意思.
百年树人 2009-02-23
  • 打赏
  • 举报
回复
---测试数据---
if object_id('[Order]') is not null drop table [Order]
go
create table [Order]([City] varchar(6))
insert [Order]
select '北京' union all
select '北京市' union all
select '京'
if object_id('[SearchCond]') is not null drop table [SearchCond]
go
create table [SearchCond]([SCond] varchar(4))
insert [SearchCond]
select '京' union all
select '北京'

---查询---
SELECT distinct City
FROM [Order] o,SearchCond s
WHERE charindex(s.SCond,o.City)>0

---结果---
City
------
北京
北京市


(所影响的行数为 3 行)
子陌红尘 2009-02-23
  • 打赏
  • 举报
回复

declare @Order table(City varchar(20))

declare @SearchCond table(SCond varchar(20))


insert into @Order select rtrim('北京 ')
insert into @Order select rtrim('北京市')
insert into @Order select rtrim('京 ')

insert into @SearchCond select rtrim('京 ')
insert into @SearchCond select rtrim('北京')



select
distinct O.City
from
@Order O,@SearchCond S
where
O.City like S.SCond+'%'

/*
City
--------------------
北京
北京市

*/
lgxyz 2009-02-23
  • 打赏
  • 举报
回复
SELECT DISTINCT City FROM AOrder,SEARCHCOND WHERE City LIKE '%'+SCond+'%'
dawugui 2009-02-23
  • 打赏
  • 举报
回复
create table [Order](City varchar(10))
create table SearchCond (SCond varchar(10))
insert into [Order] values('北京')
insert into [Order] values('北京市')
insert into [Order] values('京')
insert into SearchCond values('京')
insert into SearchCond values('北京')
go

select distinct m.* from [Order] m , SearchCond n where charindex(n.SCond , m.City) > 0

select distinct m.* from [Order] m , SearchCond n where m.City like '%' + n.SCond + '%'

--drop table [Order] , SearchCond

/*
City
----------
北京
北京市


(所影响的行数为 3 行)
*/
dobear_0922 2009-02-23
  • 打赏
  • 举报
回复
--or
select City from Order O
where exists(select 1 from SearchCond S where charindex(S.SCond,O.City)>0
子陌红尘 2009-02-23
  • 打赏
  • 举报
回复
try:

select
distinct O.City
from
Order O,SearchCond S
where
O.City like S.SCond+'%'
dobear_0922 2009-02-23
  • 打赏
  • 举报
回复
select City from Order O
where exists(select 1 from SearchCond S where O.City like '%'+S.SCond+'%')
dawugui 2009-02-23
  • 打赏
  • 举报
回复
select distinct m.* from [Order] m , SearchCond n where chindex(n.SearchCond , m.City) > 0

select distinct m.* from [Order] m , SearchCond n where m.City like '%' + n.SearchCond + '%'
百年树人 2009-02-23
  • 打赏
  • 举报
回复
SELECT City 
FROM Order o,SearchCond s
WHERE where charindex(s.SCond,o.City)>0
dawugui 2009-02-23
  • 打赏
  • 举报
回复
select m.* from [Order] m , SearchCond n where chindex(n.SearchCond , m.City) > 0

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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