0

ユーザーが SQL クエリを入力できる PHP/MySQLi フロントエンドを作成しました。サーバーは結果をテーブルに返します (またはINSERTs とUPDATEs に OK を出力します) 。

SELECT * FROM movies約 160 万の映画、190 万の俳優、320 万のキーワードを含む IMDb 抽出では、結果の出力に非常に長い時間がかかる可能性があるため (例: )、 50 回の反復後に for ループの出力をキャンセルして、出力を 50 行に制限しました。

LIMITただ、クエリ自体もかなり時間がかかるので、キーワードの有無に関わらず、グローバル最大行戻り値を設定できるようになればと思いました。私は自分の練習のためにのみサーバーを使用するつもりでしたが、クラスの何人かの人々が教師から提供されたフロントエンド (Windows EXE、しかしクラスの半分は Mac/Linux を使用) に苦労しているため、私はそれをアクセスできるようにすることにしました。それらも。しかし、Debian VM がクラッシュしないようにしたいのは、基本的には DDoS です。

明確にするために (グローバル制限が 50 の例):

SELECT * FROM movies;
> First 50 rows
SELECT * FROM movies LIMIT 10;
> First 10 rows
SELECT * FROM movies LIMIT 50,100;
> 50 rows (from 50 to 99)

PHP/MySQLi または MySQL サーバー自体を使用して、返される値の数を制限する可能性はありますか? LIMITまたは、クエリに追加/置換する必要がありますか?

4

3 に答える 3

1

そこのクエリを使用して、「LIMIT 50」を追加できます。

そして、彼らが自分でLIMITを追加した場合は、正規表現でそれを除外して、LIMITを追加してください。

于 2015-03-25T21:30:04.083 に答える
0

関数を作成できます。 https://dev.mysql.com/doc/refman/5.0/en/create-function.html

これが役立つかどうかお知らせください。

于 2015-03-25T21:40:56.990 に答える