2013-10-16 65 views
0

我有一個搜索功能是我能找到的地址1號線在我的數據庫,但我想知道是否有可能找到addressline 1,2,3,4,5這是在同一行所有單獨的屬性,這取決於什麼用戶搜索。見下面的代碼。任何幫助將不勝感激,謝謝。SQL - 我可以在查詢的同一行上使用OR和LIKE嗎?

這個工程:

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

    SELECT * FROM Company 
    WHERE Address_1 LIKE ? 

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

</sql:query> 


這是可能以某種形式的語法(無論是 '||' '或' 運算符)。

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

我99.9%肯定你不是從HTML執行SQL。 – geoffspear

+0

還是看不出造成這個問題的原因。 – mishan

+0

以及它的JSP,我猜你的意思是下劃線的優缺點僅僅是屬性名稱。可能應該把它們拿出來。感謝您的反饋。 –

回答

1

您使用的語法不正確。

你必須做一些事情,如:

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

感謝您回覆我們。當我使用「COUNT字段不正確」之上的代碼時,我的堆棧跟蹤中出現編譯錯誤。有任何想法嗎??? –

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

+0

感謝您回覆我們。當我使用「COUNT字段不正確」之上的代碼時,我的堆棧跟蹤中出現編譯錯誤。有任何想法嗎??? –

+0

這可能是一個問題,因爲'伯爵()'方法設置有一些無效的參數。簡而言之,您要計數的數據無效,可能爲'null'。 –

+0

儘管數據庫中的所有字段都有值。 –

相關問題