0

現在アイテム配列内にないアイテムのリストをデータベースからフェッチしたい。

私は、「NOT IN」が、複数の!=「NOTEQUALTO」を大量に実行するための完璧なソリューションであることを調査しました。

しかし、リストを生成するための私のコード:

    echo $query = sprintf("SELECT * FROM %s WHERE profile_id='%s' AND id NOT IN (%s)", $table_array[$item], $profile_id, implode(',', $shop_window_items));

このエラーの原因:

SELECT * FROM event WHERE profile_id='945b4dbf5bf8ee1ac08a73e9e25a939772c9c9b8' AND id NOT IN (4d96b83d18a8c2db79089ac002e346fd9dea5c43,3803bb535015174e9675090fbb680a5f286ba6bf,58f07f83a8ea10ec4db9c8b7c7f39f0a6c3a2079,57c2db2ce32925bcb49b83e22513ca74cc9bcadc)Unknown column '4d96b83d18a8c2db79089ac002e346fd9dea5c43' in 'where clause

誰かが私に何が間違っているのか教えてもらえますか?

前もって感謝します

4

2 に答える 2

3

文字列を一重引用符で囲む必要があります。そうしないと、システム名と見なされます。

...NOT IN ('%s')", $table_array[$item], $profile_id, implode("','", ...
           ^  ^                                               ^ ^
于 2013-03-14T00:47:47.573 に答える
0

内の値を引用符で囲む必要があることを確認してくださいIN

echo $query = sprintf("SELECT * FROM %s WHERE profile_id='%s' AND id NOT IN (%s)", $table_array[$item], $profile_id, "'" . implode("','", $shop_window_items) . "'");
于 2013-03-14T00:47:54.557 に答える