2012-04-18 9 views
0

私は各行からIDを取得するスクリプトを持っており、複数のIDを同時に変更するにはこれらを選択できます。MySQL、IDで要素のグループを選択しますか?

私が更新するIDの配列を持っていますが、どのように私は、単一のMySQLのクエリに任意のIDのグループを選択しますか?以下のような

何か:私はこれに少し困惑している

SELECT * FROM 'locations' WHERE 'region'='$region' AND 'uniqueID'={$id_array}

、私は、mysqlはこの種のもののための特別な演算子を持っていると確信しています。それとも?それぞれの要素に対して別々のmysqlクエリを実行する方が良いでしょうか? WHERE uniqueid IN (" . implode($id_list, ",") . ")

答えて

1

SELECT * FROM 'localtions' WHERE 'uniqueID' IN (.....your ids here, comma separated)

カンマ区切りのID文字列を作成してクエリを実行することができます。あなたのカンマ区切りのID文字列を与える

foreach ($arr as $id_array) { 
$strid .= ','.$arr; 

}

。 これで、データベースに一度だけ接続する必要があります。

SELECT * FROM 'locations' WHERE 'region'='$region' AND 'uniqueID' in (."$strid".) 
+0

あなたは "IN"というキーワードを持っています...私の人生のためのマニュアルでは見つけられませんでした。正確に私が望んでいたように見えます。ありがとう。 (今、答えを受け入れるのに10分待つ...) –

+0

'IN'キーワードは実際にはT-SQL(フレーバーにとらわれない)なので、MySQL固有のマニュアルにないと驚くことはありません。しかし私はそれを見上げた。 – hkf

+0

これは私が最後に使った解決策です。私はimplodeを使って配列をカンマで区切っています: '..." WHERE uniqueid IN( "。implode($ id_list、 '、')") "' –

1

代わりのに複数の接続をしている:PHPソリューションのために(?もしそうなら、私は一つのPHPのMySQLの呼び出しに複数のクエリを結ぶことができます...接続を減らすために)

+0

ありがとう、しかしhkfはそれにあなたを打つ。私はimplode()を使って配列をカンマ区切りの文字列に結合しました。 –

関連する問題