SQL where语句,是否可以使用通配符作为列名?

时间:2013-05-10 21:17:00

标签: html sql jsp jdbc

我有一个问题:

    <sql:query var="result" dataSource="jdbc/XXXX">
        Select top 1000 max(IP),max(mail0),etc,etc,etc,etc,etc from PCOwners

        inner join user on PCOwners.ID = user.Name0
        inner join wol on PCOwners.namename = mach

        where Name0 = ? <sql:param value="blahblahblah" />

        group by Name0
        order by Name0 desc
    </sql:query>

而且,我想要

  

其中Name0 =? sql:param value =“blahblahblah”/&gt;

就像是

  

其中'%'=? sql:param value =“blahblahblah”/&gt;

因为,我想要:

     ? <sql:param value="blahblahblah" /> 

接受用户输入的任何内容(我知道,我知道....)....

因为如果用户输入任何列中包含的部分/全部内容,我希望用户获得结果

可以/我如何取代

  

这意味着

  

任何专栏

??????

1 个答案:

答案 0 :(得分:1)

不,你不能这样做。准备好的语句包括将参数化语句传递给数据库,以便它准备查询的执行计划,以便稍后执行。为了能够准备执行计划,数据库需要知道列名,因为计划依赖于它们(例如,按名称选择将使用名称上的索引,但不会选择年龄)。