php mysql select 查询问题
select*fromdocumentswheredocument_srlin(selectdocument_srlfromdocument_extra_varswher...
select * from documents where document_srl in (
select document_srl
from document_extra_vars where (
eid = 'recycling_type' and ( value
like '%11%' ))
and (eid = 'processing_method' and ( value like
'%22%' ))
and (eid = 'product_line' and ( value like '%33%' ))
)
数据库里明明有一条数据,但是这么查询的话一条数据都查询不了,为什么呢?
document_srl value eid
3395 11 recycling_type
3395 22 processing_method
3395 33 product_line
==================================
这是数据库表结构 展开
select document_srl
from document_extra_vars where (
eid = 'recycling_type' and ( value
like '%11%' ))
and (eid = 'processing_method' and ( value like
'%22%' ))
and (eid = 'product_line' and ( value like '%33%' ))
)
数据库里明明有一条数据,但是这么查询的话一条数据都查询不了,为什么呢?
document_srl value eid
3395 11 recycling_type
3395 22 processing_method
3395 33 product_line
==================================
这是数据库表结构 展开
4个回答
展开全部
select * from documents where document_srl in (
select document_srl
from document_extra_vars where (
eid = 'recycling_type' and ( value
like '%11%' ))
or (eid = 'processing_method' and ( value like
'%22%' ))
or (eid = 'product_line' and ( value like '%33%' ))
)
select document_srl
from document_extra_vars where (
eid = 'recycling_type' and ( value
like '%11%' ))
or (eid = 'processing_method' and ( value like
'%22%' ))
or (eid = 'product_line' and ( value like '%33%' ))
)
追问
我要的是满足所有条件的数据,用or的话不行。
展开全部
select document_srl
from document_extra_vars where
(eid = 'recycling_type' and ( value like '%11%' ))
and (eid = 'processing_method' and ( value like '%22%' ))
and (eid = 'product_line' and ( value like '%33%' ))
你这里3个and , eid 不会同时等于3个值, 故where永远不会成立
from document_extra_vars where
(eid = 'recycling_type' and ( value like '%11%' ))
and (eid = 'processing_method' and ( value like '%22%' ))
and (eid = 'product_line' and ( value like '%33%' ))
你这里3个and , eid 不会同时等于3个值, 故where永远不会成立
追问
能详细点吗??怎么能解决呢?
追答
我要的是满足所有条件的数据,用or的话不行。
说下你要查的数据是什么吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
like 只能用一次,eid 不可以同时等于三个值
你要想做就分三步写
select * from documents where document_srl in (
select eid
,document_srl
from document_extra_vars where (
eid = 'recycling_type' and ( value
like '%11%' )))
把这个所得的结果再进行搜索
select * from documents where document_srl in (
select eid
,document_srl
from document_extra_vars where (and (eid = 'processing_method' and ( value like
'%22%' )))
把这个所得的结果再进行搜索
select * from documents where document_srl in (
select document_srl
from document_extra_vars where (
and (eid = 'product_line' and ( value like '%33%' ))
)
这就是你要的结果
你试试
你要想做就分三步写
select * from documents where document_srl in (
select eid
,document_srl
from document_extra_vars where (
eid = 'recycling_type' and ( value
like '%11%' )))
把这个所得的结果再进行搜索
select * from documents where document_srl in (
select eid
,document_srl
from document_extra_vars where (and (eid = 'processing_method' and ( value like
'%22%' )))
把这个所得的结果再进行搜索
select * from documents where document_srl in (
select document_srl
from document_extra_vars where (
and (eid = 'product_line' and ( value like '%33%' ))
)
这就是你要的结果
你试试
更多追问追答
追问
怎么把这三步骤,串联起来呢??
追答
那就是一个很长的sql了
把第三个条件放到最外面
把第二个条件放到第三个条件中
把第一个条件入到第二个中
因为查询是第三个以第二个为基础
第二个以第一个为基础。。你试试写下!!!
不过分三步要比你一步到位执行的要快!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sql语句写错了 有几个地方and 应该换成or
按你这写的 没有满足条件的
按你这写的 没有满足条件的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询