我有一个搜索功能,我可以在我的数据库中找到地址第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 ?
答案 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
运算符之前关闭条件。