2012-08-17 110 views
-3

我必須檢索用戶的歷史記錄,並且我有4個表,它們的數據相互依賴。我可以使用循環檢索數據,但是我使用「where IN()」子句然後,如果我提供給「where IN()」的列表爲空,它將返回一個錯誤。是否IN()不能爲空?mysql在子句中避免循環

+0

有什麼你試過...現在你要離開我們的猜測和撓頭.... – Neal 2012-08-17 18:21:21

回答

1

當爆數組IN子句,我做的兩件事情

1一:檢查,如果你甚至需要運行在所有

if(!empty($some_array)) { 
    //run mysql query 
} 
else { 
    // if you need to do something if the array is empty, such as error or set some defaults, do it here 
} 

2查詢:所述陣列中的值。如果基於一個自動incrememnt ID即時選擇initiliser這是不曾經在數據庫(例如,我使用零作爲默認數組值停止任何空數據集問題,因爲零我永遠不會在我的ID列)。

$some_array = array(0); 
1

您可以將空值添加到啓動,如IN (0,your values here)

+1

+1只要確保使用_will在現實data_中永遠不會發生的假值 – 2012-08-17 18:22:43