達成する方法があるのだろうか:
SELECT * FROM table
などを使用LIMIT
しOFFSET
て:
SELECT * FROM table LIMIT all OFFSET 0
LIMIT と OFFSET
を使用して SQL ステートメントを記述しても、すべての結果を取得できますか?
*もちろんIF
ステートメントを使用できますが、可能であれば使用しないでください
達成する方法があるのだろうか:
SELECT * FROM table
などを使用LIMIT
しOFFSET
て:
SELECT * FROM table LIMIT all OFFSET 0
LIMIT と OFFSET
を使用して SQL ステートメントを記述しても、すべての結果を取得できますか?
*もちろんIF
ステートメントを使用できますが、可能であれば使用しないでください
おそらく最もクリーンな解決策ではないかもしれませんが、制限を非常に高い数値に設定するとうまくいく可能性があります。オフセットは 0 である必要があります。
IF
ステートメントが真であるため、制限とオフセットをクエリに追加するステートメントを使用しないのはなぜですか?
mysql doc で定義されている非常に高い数値に制限を設定すると、エラーが発生する場合があります。そのため、9999999999999 に制限するようにしてください。サーバーを高く設定しない限り、それ以上にするとエラーが発生する可能性があります。
関数で LIMIT を使用したい場合があるため、それは悪い考えではありません。関数で使用する場合、ある時点ですべてを制限し、別の時点で 1 を制限したい場合があります。
以下に、アプリケーションに制限を設けたくない場合の例を示します。
function get_navigation($select = "*", $from= "pages", $visible= 1, $subject_id = 2, $order_by = "position", $sort_by = "asc", $offset=0, $limit = 9551615 ){ グローバル $connection;
$query = " SELECT {$select} ";
$query .= " FROM {$from} ";
$query .= " WHERE visible = {$visible} ";
$query .= " AND subject_id = {$subject_id} ";
$query .= " ORDER BY {$order_by} {$sort_by} ";
$query .= " LIMIT {$offset}, {$limit} ";
mysqli_query($connection, $query);
$navigation_set = mysqli_query($connection, $query);
confirm_query($navigation_set);
return $navigation_set;
}
define ("SELECT", "*");
define ("FROM", "pages");
define ("VISIBLE", 1);
define ("SUBJECT_ID", 3);
define ("ORDER_BY", "position");
define ("SORT_BY", "ASC");
define ("LIMIT", "0");
$navigation_set = get_navigation(SELECT, FROM, VISIBLE, SUBJECT_ID, ORDER_BY, SORT_BY);