SELECT 1 WHERE ',%,' LIKE '%,3,%'; 这条sql语句怎么改变like前面的条件查出结果(Like 后面的不许变动)

很简单的,就是select1不加查询条件能查出来,加上我说的查询条件怎么查出来。sqlserver:SELECT1WHERE',%,'LIKE'%,3,%';oracle... 很简单的,就是select 1不加查询条件能查出来,加上我说的查询条件怎么查出来。
sql server:SELECT 1 WHERE ',%,' LIKE '%,3,%';
oracle:SELECT 1 FROM DUAL WHERE ',%,' LIKE '%,3,%';
like 后面的内容实际上是动态生成的,可能是'%,3,%',也可能是'%,4,%',不确定,所以3楼说的不行啊
---------------------------------------------------------------------------------------------------------
like前面我确实是作为参数传进去的,但参数为空的时候我想匹配所有记录,所以就产生了我提出的问题。
------------------------------------------------------------------------------------------------------
有没有办法在一条SQL语句中实现?
展开
 我来答
一点erer
2013-05-24
知道答主
回答量:1
采纳率:0%
帮助的人:2.5万
展开全部
传入参数a 动态生成的条件b
select 1 where case isnull(a,'') when '' then ','+ isnull(b,'') +',' else ','+a+',' end like '%,'+ isnull(b,'') +'%,'
解0人
2013-05-23 · TA获得超过2389个赞
知道大有可为答主
回答量:1474
采纳率:83%
帮助的人:773万
展开全部
declare @x varchar(1)
set @x=3
SELECT 1 as aaa WHERE ',' + @x + ',' LIKE '%,3,%'
SELECT 1 as aaa WHERE ',' + @x + ',' LIKE '%,' + @x + ',%'

以上@x就可以是动态的,不知道你是在什麽环境下使用?传入参数的话,自己组合条件嘛
追问
再看看我的提问,亲
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
果然丨在动
2013-05-23 · TA获得超过719个赞
知道小有建树答主
回答量:672
采纳率:50%
帮助的人:337万
展开全部
你是想把like前面的',%,'写成参数吗?、

select * from table where ? like '%,3,%';
后面用代码设置"?"的值就好了、
追问
当?为空的时候你怎么做?
追答
可以用判断啊、
----------------------------------
你看这样可否:
eg:
public Message getMsg(int id){
if(id==null){
Sql = select * form message;

}else{
Sql = select * from message where ? like '%,3,%';
}
Connection.prepareStatement(Sql);
}
----------------------------------
如果想用一条语句实现的话,可以用三元表达式试试、、
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mikejodden
2013-05-23 · TA获得超过384个赞
知道小有建树答主
回答量:303
采纳率:0%
帮助的人:278万
展开全部
没明白楼主的意思,尽量说的详细点,你是不是想类似这样
SELECT 1 from [TABLE] WHERE [COLUMN] LIKE '%,3,%'
追问
很简单的,就是select 1不加查询条件能查出来,加上我说的查询条件怎么查出来。
追答
还是不清楚你这么用法是何意,不过你写成SELECT 1 WHERE ',3,' LIKE '%,3,%'应该就可以了,以后你问数据库的问题最好再说下自己用的是oracle还是sql server甚至是Access之类的,语法不一样

既然是动态生成的,那是不是作为参数传进的?

为空的话那就判断下,这么写啊
IF @p IS NULL
SELECT 1
ELSE
SELECT 1 WHERE ','+@p+',' LIKE '%,'+@p+',%'
我假设@p是你的参数

按你的意思应该是不可能一条语句实现的,但是判断过后实际执行的还是只有一条语句啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rourou3030
2013-05-23
知道答主
回答量:1
采纳率:0%
帮助的人:1507
展开全部
select * from table where ? like '%,3,%';就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
非得填个用户名
2013-05-23 · 超过26用户采纳过TA的回答
知道答主
回答量:133
采纳率:100%
帮助的人:74万
展开全部
没明白你的意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式