0
我發現了許多使用map
和implode
來構造它們的字符串的PHP示例......我使用Node和Javascript,我認爲這可能是問題所在。我有一組ID,我保存它是這樣的:MySQL從一個表中選擇基於來自另一個表的ID表的數值
[1, 2, 3, 4].join();
這就是被存儲,我試圖運行一個查詢:
SELECT sr.id, sr.name, sr.city FROM table1 AS sr
JOIN table2 AS st WHERE sr.city = st.city AND sr.id IN (st.ids);
因此,無論表中有一列的城市, table2有多個記錄,table1只有一個。表2中的'ids'列是TEXT類型。問題是它只是返回id爲1的行。如果我這樣做:
SELECT sr.id, sr.name, sr.city FROM table1 AS sr
JOIN table2 AS st WHERE sr.city = st.city AND sr.id IN (1,2);
我會得到第1和第2行。是什麼導致了這個問題?我試過[1, 2, 3, 4].join(', ');
,這並沒有幫助。有什麼建議麼?
y javascript標記? – Iceman
@Iceman因爲我在使用Node.js並在保存之前使用Javascript修改了值 – denikov
第一個建議不會存儲想要加入/使用查詢的連接字符串,因爲這會讓事情變得很痛苦!接下來,如果你打算這樣做,請查看拆分字符串方法,以便將字符串拆分爲表格,然後進行連接而不是進入。如果您不想拆分字符串,可以使用一些通配符搜索來僞裝它,但是有巨大的潛在問題,然後你也可以去動態SQL路徑。所有的方法建議不要存儲連接的字符串,如果你將它們用於這樣的目的。 – Matt