在MySQL 中,在LIMIT 子句中使用變數在處理涉及整數輸入參數(如「my_size」)的儲存過程時可能會帶來挑戰.'本機實作不直接支援此功能。但是,有多種方法可以規避此限制。
如果使用早於5.5.6 的MySQL 版本,或者不需要預存程序,則可以使用帶有WHERE 的子查詢子句和ROWNUM 可以作為有效的解決方案。
SET @limit = 10; SELECT * FROM ( SELECT instances.*, @rownum := @rownum + 1 AS rank FROM instances, (SELECT @rownum := 0) r ) d WHERE rank < @limit;
另一種方法涉及使用字串連接動態建構查詢,將結果指派給變量,然後執行準備好的查詢。
SET @query = 'SELECT * FROM some_table LIMIT ' || my_size; PREPARE stmt FROM @query; EXECUTE stmt;
或者,準備好的語句提供了一種將參數傳遞給動態 SQL 語句的方法,包括 LIMIT 子句。
SET @limit = 10; PREPARE stmt FROM 'SELECT * FROM some_table LIMIT ?'; SET @param = @limit; EXECUTE stmt USING @param;
以上是如何在 MySQL 的 LIMIT 子句中使用變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!