所以我有一個格式數據像; 1 ;; 2;然後我需要在查詢中使用這個數字,所以我想我會將它轉換爲1,2並在IN條件下使用它。在我的表中,結果應該返回2行,但它只返回1行。MySQL選擇與子查詢有替換
我的查詢是這樣的。子查詢返回1,2沒有問題,但只有1行被檢索。
select *
from wt_lists
where id IN ((select replace (replace(sendto, ';;',','),';','')
from wt_stats where statsid IN (1)))
但是當我嘗試它與此有關。它返回正確的結果,在我的情況下是2行。
select *
from wt_lists
where id IN (1,2)
我在這裏錯過了什麼?
你的子查詢返回一個字符串「1,2」,而不是兩行編號1和2 ......當你選擇CAST(」 1,2'AS UNSIGNED),你會得到1 – simendsjo 2010-06-26 11:54:37
如果可能的話,我建議解析應用程序邏輯中的數據併發送一個乾淨的逗號分隔的字符串給MySQL – 2010-06-26 12:01:09
我同意David的觀點。從MySQL執行此操作似乎很麻煩。我發現這個存儲過程:http://forge.mysql.com/tools/tool.php?id=4 – simendsjo 2010-06-26 12:09:06