找到 4219 篇文章 关于 MySQLi
146 次查看
MySQL NULLIF() 控制流函数如果两个参数相同,则返回 NULL,否则返回第一个参数。语法NULLIF(expression1, expression2)如果 expression1 = expression2,则 NULLIF() 返回 NULL,否则返回 expression1。以下示例将展示这一点:mysql> Select NULLIF('Ram','Ram'); +---------------------+ | NULLIF('Ram','Ram') | +---------------------+ | NULL | +---------------------+ 1 row in set (0.00 sec) mysql> Select NULLIF('Ram','Shyam'); +-----------------------+ | NULLIF('Ram','Shyam') | +-----------------------+ | Ram | +-----------------------+ 1 row in set (0.00 sec)
179 次查看
假设我们在 BEGIN/END 块内声明一个变量,那么这个变量的作用域就在这个特定的块内。我们也可以在另一个 BEGIN/END 块内声明一个同名变量,这完全合法,但它的作用域就在其 BEGIN/END 块内。可以通过以下示例理解,在示例中我们创建了一个过程来显示变量的作用域:示例mysql> Create Procedure Scope_variables() -> BEGIN -> DECLARE A Varchar(5) Default 'outer'; -> BEGIN -> DECLARE A ... 阅读更多
59 次查看
实际上,MySQL 会保留存储过程创建时的环境。可以通过以下示例理解,在示例中我们使用两个竖线来连接字符串。这只有在 SQL 模式为 ansi 时才合法。但是,如果我们将 SQL 模式更改为非 ansi,则过程仍然有效,就像原始设置仍然有效一样。示例mysql> Set sql_mode = 'ansi'// Query OK, 0 rows affected, 1 warning (0.14 sec) mysql> Create Procedure Con_string() -> SELECT 'a'||'b'// Query OK, 0 rows affected (0.12 sec) mysql> Call Con_string (); +----------+ | ... 阅读更多
147 次查看
MySQL IFNULL() 控制流函数如果第一个参数不为 NULL,则返回第一个参数,否则返回第二个参数。语法IFNULL(expression1, expression2)如果 expression1 不为 NULL,则 IFNULL() 返回 expression1,否则返回 expression2。如果两个参数都为 NULL,则返回 NULL。以下示例将展示这一点:mysql> Select IFNULL(NULL, 'Ram'); +--------------------+ | IFNULL(NULL, 'Ram') | +--------------------+ | Ram | +--------------------+ 1 row in set (0.00 sec) mysql> Select IFNULL('Shyam', 'Ram'); +-----------------------+ | IFNULL('Shyam', 'Ram') | +-----------------------+ | Shyam | +-----------------------+ ... 阅读更多
171 次查看
众所周知,REPLACE () 函数用于将字符串中子字符串的出现替换为另一个子字符串。我们还可以将 REPLACE 函数与 UPDATE 语句一起使用来更新表。以下示例将演示它:示例mysql> Update Student set Father_Name = REPLACE(Father_Name, 'Mr.', 'Shri '); Query OK, 5 rows affected (0.06 sec) Rows matched: 5 Changed: 5 Warnings: 0 mysql> Select Name, Father_Name from Student; +---------+-----------------+ | Name | Father_Name | +---------+-----------------+ | Gaurav | Shri Ramesh | | Aarav | Shri Sanjay | ... 阅读更多
432 次查看
我们可以像使用它们一样在没有 'BEGIN' 和 'END' 的情况下创建 MySQL 存储过程,唯一需要做的就是省略 BEGIN 和 END。在以下示例中,我们正在创建一个没有 'BEGIN' 和 'END' 的存储过程来获取表中的所有行:示例mysql> Delimiter // mysql> CREATE PROCEDURE Hello() -> SELECT * from Student_info; // Query OK, 0 rows affected (0.08 sec)我们可以看到 MySQL 创建了没有 BEGIN 和 END 的存储过程。现在通过 CALL 语句调用它:mysql> Delimiter ; mysql> CALL Hello(); +-----+---------+------------+------------+ | id | ... 阅读更多
86 次查看
实际上,IFNULL(expression1, expression2) 的默认返回类型是两个表达式中更通用的那个,按 STRING、REAL 或 INTEGER 的顺序排列。可以通过以下示例理解:示例mysql> Create table testing Select IFNULL(100, 'testing123'); Query OK, 1 row affected (0.18 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> Select * from testing568; +-----------------------+ | IFNULL(100, 'testing') | +-----------------------+ | 100 | +-----------------------+ 1 row in set (0.00 sec) mysql> Describe testing568; +-----------------------+------------+------+-----+---------+-------+ | Field | Type ... 阅读更多
697 次查看
实际上,它们都是赋值运算符,用于赋值,但它们之间的显着区别如下:= 运算符将值赋值为 SET 语句的一部分或 UPDATE 语句中 SET 子句的一部分,在任何其他情况下,= 运算符都被解释为比较运算符。另一方面,:= 运算符赋值,并且永远不会被解释为比较运算符。mysql> Update estimated_cost1 SET Tender_value = '8570.000' where id = 2; Query OK, 1 row affected (0.06 sec) Rows matched: 1 Changed: 1 Warnings: 0 ... 阅读更多
3K+ 次查看
它可以通过以下查询创建:mysql> Delimiter // mysql> CREATE PROCEDURE fact(IN x INT) -> BEGIN -> DECLARE result INT; -> DECLARE i INT; -> SET result = 1; -> SET i = 1; -> WHILE i < x DO -> SET result = result * i; -> SET i = i + 1; -> END WHILE; -> SELECT x AS Number, result as Factorial; -> END// Query OK, 0 rows affected (0.17 sec)现在调用这个... 阅读更多
190 次查看
复制存储过程和函数的限制如下:操作类型 - 实际上,存储过程和函数的复制取决于操作类型。如果存储过程中嵌入的操作是非确定性的(随机的)或基于时间的,则它可能无法正确复制。根据其本质,随机产生的结果是不可预测的,并且无法精确复制,因此,复制到从服务器上的随机操作不会镜像在主服务器上执行的操作。事务类型 - 对于在大型 DML 操作(例如批量插入)期间发生错误的非事务表,在... 阅读更多