map
とimplode
を使用して文字列を構成する多くのPHPの例が見つかりました...私はNodeとJavascriptを使用しています。私はIDの配列を持っていると私はこのようにそれを保存しています:保存されていますし、私は、クエリを実行しようとしているMySQLが別のテーブルのIDの配列に基づいて1つのテーブルから値を選択
[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には1つしかありません。 'ids'列は、table2の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