- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 MySql 函数,它接受 3 个参数。最后一个参数是一个查询本身,我可以使用 PREPARE(?) 执行它,至少在它没有多个结果的情况下是这样。我想遍历从 PREPARED 语句返回的所有结果。
我该怎么做?我在考虑 CURSOR,但我能发现的是不可能在 PREPARED 变量语句上使用 CURSOR。
我想要实现的是:1. 我在我的申请中看到了结果。结果被分页。2. 我想搜索特定行,找到它所属的页面,并将其放入 View 中。3. 结果 View 可以通过多种方式进行过滤和排序,因此 MySql 函数的第三个参数是结果 View 中填充的查询。
希望我说清楚了,否则让我知道。
到目前为止,我有以下内容: DELIMITER $$ # 否则不能使用分号结束一行
/*
The bar graph (clsBarGraph) shows cows in pages.
If you wish to search for a page with a certain Cow ID you need to do alot of things.
Therefore this function is created, to do the heavy lifting all in the database engine.accessible
@param LongCowID The long cow ID of the cow you wish to get the page for
@param ItemsPerPage To determine on what page a cow comes, it is necessary to known how many cows will fit into a page
@param SelectQuery The query that was used to view the data in the BarGraph. This determines ordering, which cows to have in the resultset to limit on, etc.
This should be without the limit
@return The page number to set the view to, or -1 if the cow does not exist.
*/
CREATE FUNCTION `GetPageForCowID`(LongCowID INT, ItemsPerPage INT, SelectQuery VARCHAR(255))
RETURNS INT
BEGIN
DECLARE `page` INT;
/* Prepares queries to execute */
PREPARE stmt_CheckIfCowExists FROM 'SELECT COUNT(`Long_Cow_ID`) as `rows` FROM `cow_data` INTO @NumberOfRows';
EXECUTE stmt_CheckIfCowExists;
IF @NumberOfRows = 1 THEN
/* The cow does nto exist */
SET `page` = -1;
ELSE
/* The cow does exist */
/* Get all the cows used in the view of the data, without a limit and put it into a variable */
SET @SelectQuery = CONCAT(@SelectQuery, ' INTO @CowsForDataView');
PREPARE stmt_SelectDataForView FROM @SelectQuery;
EXECUTE stmt_SelectDataForView;
SELECT COUNT(*) FROM stmt_SelectDataForView;
DEALLOCATE PREPARE stmt_SelectDataForView;
END if;
/* Clean Up */
deallocate PREPARE stmt_CheckIfCowExists;
return `page`;
END
提前致谢。
最佳答案
将结果放入临时表:
SET @sql := CONCAT('CREATE TEMPORARY TABLE tmp_GetPageForCowID ', SelectQuery);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
然后可以在临时表的内容上迭代游标。
关于MySql PREPARE stmt FROM [function argument] 和 CURSORs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14440356/
我无法确定以下 ruby 内联救援代码有什么问题 def test_check() p "first st" t = 5 * lsdj rescue return false p "second
在完成准备好的 mysqli$stmt->close() 和 $stmt->free_result() 之间的区别强>声明。 到目前为止我使用: $mysqli = new mysqli(host,u
我正在尝试登录,输入用户名和密码,如果未显示“同意元素”或显示“管理标题元素”,则编写一个条件,然后单击管理元素,但我的代码仅检查我同意元素不存在显示并抛出异常。 driver.get("ente
根据 php 手册,您可以通过询问 $stmt->error 和 $stmt->errno 来检索任何准备好的语句方法中的错误,但是 bind_param 方法似乎从来没有将这些设置为错误,其他人可以
你能帮我编写高效的 Java 代码吗? 逻辑是:我必须读取文件中的第一个有效记录并生成文件名。无效/有效记录由该行的前 2 个字符标识。无效记录的前 2 个字符填充在名为ignoreTrans 的 A
我试图从下面的代码中获取结果,但是没有返回任何结果。 $stmt->execute(array(id)) 未按预期运行。它似乎在其他代码段中工作正常,我已经比较了它们,没有发现任何差异。 $stmt
我正在尝试检查从 cookie 中检索到的 id 是否存在于数据库中,但是这部分代码 $stmt->bind_result($id, $uname); 和 $username = $uname; 按照
我已经准备好阅读所有其他主题,但没有找到解决方案。这是我的代码 $DevolverUser = $_SESSION['DevolverUser']; $DevolverPas
我正在尝试准备一个mysqli查询,但是它在没有给出任何错误的情况下以静默方式失败。 $db_hostname = "test.com"; $db_database = "dbname";
我想知道 1.java中语句关闭的目的 2.如果我没有在程序中提供 stmt.close() 会发生什么 try{ Statement DelQTY=OPConnect.crea
需要帮助来完成这个简单的任务。该 sp 应该提供一个结果集,并将从 MS-Access-Database 报告目的中调用。 表名可变,但以数字 (lsid) 结尾。使用串联。max_prepared_
我有一个带有 echo 的 php 代码来检查它停止的位置(它不会崩溃,但会停止发送 echo 并且不能按预期工作) $stmt=$conexion->prepare("SELECT Email, M
我不明白我做错了什么。 我在 SQL Server 中有一个存储过程,我需要迁移到 MySQL。 当我运行与打印相同的查询时,该查询正在工作,但相同的变量无法生成准备语句,从而导致语法错误。 Erro
我正在我的事件网站上创建搜索过滤器。有 3 个下拉输入:位置、事件类型、日期。 当用户提交搜索过滤器时,表单会发布更改 mysql 查询的值,这将在用户屏幕上显示不同的事件。我无法找到灵活的解决方案。
我如何mysqli::stmt->bind_param在mysql中被视为NULL的东西? 我目前正在使用 $stmt->bind_param('s', 'NULL'); 最佳答案 bind_para
我在此处运行准备 stmt 时遇到语法错误。我尝试手动执行 @c 中的查询并且它有效。不知道为什么 stmt 会给出这个错误。这是我正在使用的代码。 SET @i=24; SET @Bill_mont
当 ($stmt->fetch()) 服务器不会读取过去 if (isset($_POST['join'])) { $selectedgame = $_POST['join']; $stmt = $l
我的代码: $stmt = $user_home->runQuery("SELECT * FROM tbl_users, tbl_products WHERE userID=:uid and crea
我不明白为什么我的函数没有得到结果而只是得到空值。我正在使用 PhpStorm;我的所有连接都很好(Apache、MySQL、PhpMyAdmin),我已经检查过它们,其他其他服务也正常工作。 这是我
这个问题在这里已经有了答案: Why does mysqli num_rows always return 0? (1 个回答) 关闭 6 年前。 我想检查 if ($numRows >= 1) 那
我是一名优秀的程序员,十分优秀!