2012-09-17 168 views
0

我想一個參數傳遞給查詢,而不是寫我已經把範圍縮小到這個簡單的解釋文字豐富。 我試圖插入frament是MySQL查詢參數字符串數組

where pkw_0.keyword in (:kwd) 

我已經使用一個String []來構造形式瓦爾斯的字符串=「‘AVAL’,‘BVAL’」,我使用的setParameter傳遞到查詢( 「KWD」,瓦爾斯);該查詢返回零結果。但是,如果我構建手工查詢,並使用MySQL控制檯的查詢返回1個結果預計。

所以我假設一個單一的字符串是不正確的參數或有我需要之前通過電話的setParameter經過他們做值的一些條件。

回答

1

每個參數只表示一個單一字面值。你需要在你準備好的聲明(每個值)創建多個佔位符,然後提供每個值MySQL作爲一個單獨的參數。

+0

嗯,問題是我有一個可變數量的值,所以我無法預測有多少,甚至會有多少值的最大值。所以我認爲你是說在給定這些條件的情況下,我不能用setParameter中的'('...')'來代替,你有沒有其他的建議(除了試圖預設值的數量) –

+0

@JeffLowcock :你在用什麼語言?爲什麼你不能計算陣列中元素的數量? – eggyal

+0

這是所有的Java - 它不是的,這是問題的論據計數。我已經簡化了這個(也許太過分了),我實際上使用了namedNativeQuery和關聯的SqlResultMapping,所以動態創建這個可能是不可能的。因此原來的方法 - 這可能根本不可能。 –