私はPHPで次のコードを持っています:
$IDs = implode(",", array_keys($result["matches"]));
$sql = "SELECT * FROM table WHERE id IN ($IDs)";
私はそれをNode.jsに「変換」しており、implodeがarray.joinになると思うので、これを試しました。
var ids = Object.keys(answer['matches']).join(",");
var sql = "SELECT * FROM xml_it WHERE id IN (" + ids + ")";
ここで、PHP $ sql変数をエコーすると、期待どおりの結果が得られます。
SELECT * FROM table WHERE id IN (3187,3220,3233,3245,3246,3251,3253,3256, ...
しかし、node.jsを使用すると、次のようになります。
SELECT * FROM xml_it WHERE id_xml IN ([0,1,2,3,4, ...
答え['matches']は明らかに同じ結果です(基本的にはSphinxの検索結果です)
文字列ではなくキーとして取得する理由はありますか?
$resultとvaranswerのデータは次のようになります。
[{"doc":3187,"weight":1,"attrs":{}},{"doc":3220,"weight":1,"attrs":{}},{"doc":3233,"weight":1,"attrs":{}},