1

私は2つのテーブルを持っています。項目には id、title、number のフィールドがあります。他のテーブル (リスト) の関連フィールド (リスト) は、アイテムの ID であるカンマ区切りの値を持つフィールドです。items.number を、関連する ID がリスト テーブルに表示される回数と同じにしたい。例として、このクエリはこれを達成するためにうまく機能しています...

update items set number = (select count(*) from lists where list like concat('%',items.id,'%')) where title > 'Z'

しかし、アイテム全体 (または、「Y」で始まるタイトルだけでも、たとえば、Z で始まるわずか 200 よりもはるかに多い場合) を更新したい場合、エラーが発生します - 「MySQL server has gone away」または「クエリの実行が中断されました」。これは、クエリの要求が高すぎるためだと思います。サーバーが故障することなくこれを達成するためのより良い方法はありますか?

4

1 に答える 1