SQL - 我可以在查询的同一行使用OR和LIKE吗?

时间:2013-10-16 12:36:27

标签: sql jsp

我有一个搜索功能,我可以在我的数据库中找到地址第1行,但我想知道是否有可能找到地址线1,2,3,4,5这些都是同一行上的单独属性,具体取决于用户搜索的内容。见下面的代码。任何帮助将不胜感激,谢谢。

此作品

<sql:query var ="NameCheck" scope = "session" dataSource = "${bookdB}">

    SELECT * FROM Company   
    WHERE Address_1 LIKE ?

    <sql:param value = "%${param.category}%" />

</sql:query>


这是否可能采用某种形式的语法('||','OR'运算符)。

SELECT * FROM Company
WHERE Address_1 OR Address_2 OR Address_3 OR Address_4 OR Address_5 LIKE ?

2 个答案:

答案 0 :(得分:1)

您使用的语法不正确。

您必须执行以下操作:

SELECT * FROM Company
WHERE Address_1 LIKE ...
   OR Address_2 LIKE ...
   OR Address_3 LIKE ...
   OR Address_4 LIKE ...
   OR Address_5 LIKE ...

答案 1 :(得分:1)

在Sql中,是的,您可以使用OR而不是||,但这是在条件中选择行的唯一方法,但您必须完成每个条件然后开始新条件像这样:

SELECT * FROM Company
WHERE Address_1 LIKE 
OR Address_2 LIKE %a OR 
Address_3 LIKE %a OR 
Address_4 LIKE%a OR 
Address_5 LIKE %a

计算机不会更改其算法,所以你应该坚持使用它的语言:)

要搜索多个地址,您可以使用AND,然后在HTML中编写它们。当一个条件不成立时,您可以使用OR,然后转到下一个条件。这样,您必须在OR运算符之前关闭条件。

http://www.w3schools.com/sql/sql_and_or.asp