找到 6705 篇文章 关于数据库

MySQL NULLIF() 控制流函数如何类似于 CASE 语句?

Lakshmi Srinivas
更新于 2020-06-22 06:56:34

86 次浏览

众所周知,MySQL NULLIF() 控制流函数如果两个参数相同则返回 NULL,否则返回第一个参数。因此它类似于以下 CASE 语句:CASE WHEN expression1=expression2 THEN NULL ELSE Expression2 END。

如果参数在 NULLIF() 中不等于,MySQL 如何评估表达式?

Akshaya Akki
更新于 2020-06-22 07:28:19

94 次浏览

众所周知,MySQL NULLIF() 控制流函数如果两个参数不相同则返回第一个参数。如果两个参数不相同,MySQL 会对第一个参数进行两次评估,并将其作为输出返回。例如mysql> Select NULLIF('Tutorialspoint','MySQL'); +----------------------------------+ | NULLIF('Tutorialspoint','MySQL') | +----------------------------------+ | Tutorialspoint                   | +----------------------------------+ 1 row in set (0.00 sec)在上面的示例中,由于参数不相同,因此 MySQL 对第一个参数即 'Tutorialspoint' 进行了两次评估,并将其作为输出返回。

MySQL NULLIF() 控制流函数有什么用?

Sai Nath
更新于 2020-06-22 06:58:05

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)

MySQL 存储过程中变量的作用域是什么意思?

Jennifer Nicholas
更新于 2020-06-22 07:38:09

179 次浏览

假设我们在 BEGIN/END 块内声明一个变量,则该变量的作用域将在此特定块内。我们还可以在另一个 BEGIN/END 块内声明具有相同名称的变量,这完全合法,但其作用域将在其 BEGIN/END 块内。可以通过以下示例了解,我们正在创建存储过程以显示变量的作用域:示例mysql> Create Procedure Scope_variables()     -> BEGIN     -> DECLARE A Varchar(5) Default 'outer';     -> BEGIN     -> DECLARE A ... 阅读更多

MySQL 是否保留存储过程创建时的环境?

seetha
更新于 2020-06-22 07:37:13

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 (); +----------+ | ... 阅读更多

MySQL IFNULL() 控制流函数有什么用?

Jai Janardhan
更新于 2020-06-22 06:59:50

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                 | +-----------------------+ ... 阅读更多

如何使用 REPLACE() 与 UPDATE 子句对表进行永久更改?

Manikanth Mani
更新于 2020-06-22 07:01:25

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     | ... 阅读更多

我们如何在没有 'BEGIN' 和 'END' 的情况下创建 MySQL 存储过程?

Vrundesha Joshi
更新于 2020-06-22 07:20:52

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  | ... 阅读更多

MySQL IFNULL() 控制流运算符的默认返回类型是什么?

Ankith Reddy
更新于 2020-06-22 07:00:29

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     ... 阅读更多

= 和 := 赋值运算符有什么区别?

karthikeya Boyini
更新于 2020-06-22 06:58:55

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 ... 阅读更多

广告