0
我想寫以下查詢......MySQL的多個參數查詢
SELECT SQL_CALC_FOUND_ROWS * FROM calls
WHERE id IS NOT NULL
AND account_name LIKE '%$account_search%'
AND name LIKE '%$adv_term_det%' OR description LIKE '%$adv_term_det%'
AND type != 'online'
AND marked_completed_by = ''
ORDER BY $sort_by DESC LIMIT $page_position, $item_per_page
但結果不是預期值。我懷疑該生產線是導致該問題的是..
AND name LIKE '%$adv_term_det%' OR description LIKE '%$adv_term_det%'
我懷疑應該是一個子查詢,但幾經嘗試用IN我沒有能夠使它發揮作用。
SELECT SQL_CALC_FOUND_ROWS * FROM calls
WHERE call_ref IN
(SELECT call_ref FROM calls
WHERE name LIKE '%$adv_term_det%' OR description LIKE '%$adv_term_det%'
)
AND id IS NOT NULL
AND account_name LIKE '%$account_search%'
AND type != 'online'
AND marked_completed_by = ''
ORDER BY $sort_by DESC LIMIT $page_position, $item_per_page;
基本上我想返回滿足所有其他標準,並在任一name
或description
以及具有$adv_term_det
所有記錄。
如果我只使用AND name LIKE '%$adv_term_det%'
我得到我期望該查詢的結果,同樣,如果我只使用AND description LIKE '%$adv_term_det%'
但我需要找到一個有記錄「的%$adv_term_det%'
要麼name
或description
謝謝,效果很好。我確實是一個每天都在進步和學習的工作。我知道爲其他語言的查詢添加括號,但不知道您也可以在SQL中使用它們。只是出於好奇,你能澄清你的意思是什麼參數而不是變量? – tatty27
嗯。 。 。開始的地方是參數化查詢。在進行應用程序開發時這很重要。如果你現在只是在玩耍,那麼這可能是一個混亂。但是,在某些時候,您應該瞭解SQL注入,動態SQL和參數化查詢。 –