WHERE句に複数のユーザーIDがある場合
MySQLで購入管理データを作っています。
buying_table`(`b_usr_id`, `b_buy_volume`, `b_buyname`)
`usr_table`(`u_usr_id`, `u_buy_volume`, `u_buyname`)
の2つのテーブルがあります。
`usr_table` には100件のユーザーデータが入っています。
このうち特定のユーザーについてbuying_table`に複写します。
ユーザー名を1001に指定し下記のSQL文を行うと、無事複写が出来ました。
INSERT INTO `buying_table`(`b_usr_id`, `b_buy_volume`, `b_buyname`) SELECT
`u_usr_id`,
`u_buy_volume`,
`u_buyname`,
FROM `usr_table`
WHERE `u_usr_id`=('1001')
今回は、()の中で、複数のユーザー名を指定し、インサートをする必要があります。
そこで、サブクエリの複数指定で使用するANYを使用し下記のSQL文にしたのですがエラーになります。
INSERT INTO `buying_table`(`b_usr_id`, `b_buy_volume`, `b_buyname`) SELECT
`u_usr_id`,
`u_buy_volume`,
`u_buyname`,
FROM `usr_table`
WHERE `u_usr_id`=ANY('1001','1004','1005')
#1064 - You have an error in your SQL syntax; check the manual
サブクエリなら簡単なんですが、このように「単純に文字が入っている場合の複数設定」はどう記載すればいいか教えてください。
事情があり()の中でユーザー名が複数カンマ区切りされている以外の設定は出来ない状況です。
宜しくお願い致します。
CentOS6.3 MySQL5.5です
お礼
回答をありがとうございます。 サイトによって制限文字数が違うんですね。前は軽いdell-supportを使っていて、今回の改悪で「悩み解決@hoiku」に避難してきたのですが、こちらも改悪されたら、「教えて進路Q&A」を使用してみようと思います。