草庐IT

while语句

全部标签

具有相同连接的MySQL多个准备好的语句

同时设置多个准备好的语句(使用单个数据库连接)的规则究竟是什么?我经常有包含多个查询的循环;最好设置3个准备好的语句,循环遍历它们,然后将它们全部关闭。我发现,有时他们一起工作,有时他们不一起工作。例如,我已经能够同时设置3个SELECT语句。但我认为在同一个表上准备好SELECT和INSERT,在循环中运行,会断开我与数据库的连接(或者至少它不能正常工作)。但是,当我将准备好的语句更改为常规查询时,我可以以相同的顺序运行相同的查询,就好了。我几乎是个新手,希望能解释一下这是如何工作的! 最佳答案 听起来您很适合存储过程。当您需要根

mysql一条语句INSERT多表

是否可以在一条语句中向多个表中插入数据?例如,我有两个表(live_products和products)它们是相同的,除了live_products是高度事务性的并且我保持较低的记录数(完成后删除),其中products保存所有历史数据,用于报告,等目前,我正在做两个查询,但做一些像这样的事情会很好INSERTINTOlive_products,products(id,name)values('','')这行不通...但是还有别的吗?谢谢! 最佳答案 单条SQL语句是不可能的。但是为什么不直接写一个存储过程来做呢?然后您就可以只用一

mysql - 如何使用 'Check' 语句来验证 mysql 中的字段值?

如何使用'Check'语句来验证mysql中的字段值?看看这个page,手册中没有讨论check关键字在MySqlWorkbench和Navicatformysql中,不存在任何设置约束或检查的选项。 最佳答案 MySQL不强制执行CHECK约束。它解析检查约束子句,但默默地忽略它。您必须使用触发器来验证数据。 关于mysql-如何使用'Check'语句来验证mysql中的字段值?,我们在StackOverflow上找到一个类似的问题: https://sta

php - 在循环期间使用 while mysql_fetch_array 和 UPDATE

我正在尝试从一个表中提取数据,将列与变量进行比较,然后如果它们匹配,则添加它们并更新另一个表上的字段。似乎UPDATE只在while循环内工作一次,并将那一次的值放在整个表中该列的每一行中。奇怪的是,当我回应它时,所有值都是正确的(唯一的)..但只有当我回应时......当我用终端查看表格时,该列的所有行都是相同的。我读到你不能一次使用2个查询......然后再说一遍......我读到你可以,如果第一个查询在循环之外......请帮助......我想把每一行的field1和field2相加,把合计放到total行。这是代码....";$result=mysql_query("SELEC

mysql在同一语句中插入选择

我想在插入期间模拟一个auto_increment场景,而该字段没有auto_increment属性。下面是场景sql语句:insertintoacctsetid=(select@vid:=max(id)+1);select@vid;基本上,我希望插入和选择在同时完成,这样我可以保证vid的值是唯一的。 最佳答案 如果您希望在保证唯一性的情况下在事务之间共享自动递增的值,您应该有一个对所有事务都可见的可锁定单例,它将保存最后一个唯一值。在MyISAM中,它存储在表的元数据中,在InnoDB中,在一个用MAX(id)填充的特殊内存对象

PostgreSQL VALUES 语句的 MySQL 模拟?

在PostgreSQL中我们有VALUESstatement.例如,VALUES(1,'one'),(2,'two'),(3,'three');相当于SELECT1AScolumn1,'one'AScolumn2UNIONALLSELECT2,'two'UNIONALLSELECT3,'three';什么是MySQL中的模拟? 最佳答案 MySQL不支持使用VALUES的(标准)行构造函数。它支持INSERT语句,但绝不作为“独立”语句。 关于PostgreSQLVALUES语句的MyS

php - 单个 MYSQL 查询中的单独语句

如何在单个MYSQL查询中分隔语句?是分号吗?我认为这不重要,但我正在编写由PHP函数调用的语句编辑:问题是我似乎不明白UPDATE语法,你可以用一个UPDATE语句执行多个字段 最佳答案 使用mysqli_函数(docs),您可以使用mysqli_multi_query(docs)在同一个字符串中传递多个查询文档中的示例:/*checkconnection*/if(mysqli_connect_errno()){printf("Connectfailed:%s\n",mysqli_connect_error());exit();}

mysql 准备语句

我有一系列16个PREPARE、EXECUTE和DEALLOCATE语句(在存储过程中),每个语句都将行插入到不同的表(表1到表16)中。例如:SET@Command1=CONCAT("insertintoTABLE1",...etc..);PREPAREstmt1FROM@Command1;EXECUTEstmt1;DEALLOCATEPREPAREstmt1;SET@Command1=CONCAT("insertintoTABLE2",...etc..);PREPAREstmt1FROM@Command1;EXECUTEstmt1;DEALLOCATEPREPAREstmt1;..

更新语句中的 MySQL 行计数器

下面的MySQL语句工作正常,它返回每个结果的行号作为行。但是现在,我想要做的是使用更新语句将列pos设置为“行”的值,因为我不想用单个查询循环数千条记录。有什么想法吗?SELECT@row:=@row+1ASrow,u.ID,u.posFROMuseru,(SELECT@row:=0)rWHEREu.year 最佳答案 ThereisariskusinguserdefinedvariablesInaSELECTstatement,eachselectexpressionisevaluatedonlywhensenttothecli

c# - 如何在不向服务器提交 SQL 语句的情况下获取 SqlParameter 的字符串表示形式?

如何将参数化字符串(如“(@param1,@param2,@param3)”)转换为普通的SQL语句(就像我要执行查询一样)?这将有助于在批量(非常长)插入查询中直接用参数值替换一组参数,其中可以重复使用相同的参数名称。我知道以下问题,但它们没有提供正确的答案(除了断言是服务器根据它单独收到的参数进行转换):HowtogettheSQLactuallyexecutedbyaparameterizedqueryin.Net(VBorC#)?GetSQLstatementafterparametersadded 最佳答案 不确定这是否是