不動産リストのテーブルがあります。各リストは不動産業者にリンクされています。エージェントが退職するとき、最後の更新のデータをソート基準として使用して、エージェントのリストをアクティブなエージェントに均等に再配布する必要があります。
いくつかのドキュメントを検索した後、MySQL GUI (私は Navicat MySQL を使用しています) から実行するとうまく機能する単一行の MySQL コマンドを取得することができました。
UPDATE listings, (SELECT @rownum:=@rownum+1 As rownum, x.id FROM (SELECT @rownum:=0) as r, listings as x) as t SET listings.agentid = ELT(MOD(t.rownum+1,4)+1,1007,1015,1011,1010) WHERE listings.id = t.id AND listings.agentid = 1014
上記の例では、1014 は退職エージェントの ID であり、1007、1015、1011、1010 は残りのエージェントの ID です。
Visual Basic .NET 2 Framework アプリケーションを使用して MySQL .NET Connector 6.5.4 (最後の 1 つ) を介してこのクエリを実行するExecuteNonQuery
と、説明のない致命的なエラーが発生します。
2 つの質問があります。
- このようなコマンドをサポートする MySQL .NET コネクタに問題はありますか?
- 私の問題に対する可能な回避策...おそらくより良いクエリ...(アプリケーションレベルに移行するという考えに満足していません)?