37

達成する方法があるのだろうか:

SELECT * FROM table

などを使用LIMITOFFSETて:

SELECT * FROM table LIMIT all OFFSET 0

LIMIT と OFFSET を使用して SQL ステートメントを記述しても、すべての結果を取得できますか?

*もちろんIFステートメントを使用できますが、可能であれば使用しないでください

4

7 に答える 7

1

おそらく最もクリーンな解決策ではないかもしれませんが、制限を非常に高い数値に設定するとうまくいく可能性があります。オフセットは 0 である必要があります。

IFステートメントが真であるため、制限とオフセットをクエリに追加するステートメントを使用しないのはなぜですか?

于 2013-04-11T14:09:15.577 に答える
-1
  1. mysql doc で定義されている非常に高い数値に制限を設定すると、エラーが発生する場合があります。そのため、9999999999999 に制限するようにしてください。サーバーを高く設定しない限り、それ以上にするとエラーが発生する可能性があります。

  2. 関数で LIMIT を使用したい場合があるため、それは悪い考えではありません。関数で使用する場合、ある時点ですべてを制限し、別の時点で 1 を制限したい場合があります。

  3. 以下に、アプリケーションに制限を設けたくない場合の例を示します。

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); 
于 2015-03-30T18:52:22.293 に答える