找到 4219 篇文章 关于 MySQLi

如何为 MySQL ENUM 数据类型插入默认值?

usharani
更新于 2020年6月20日 09:07:21

3K+ 次浏览

我们可以借助 ENUM 数据类型的 DEFAULT 属性来实现。DEFAULT 属性使 ENUM 数据类型在未指定值时具有默认值。换句话说,INSERT 语句不必包含此字段的值,因为如果不包含,则会插入 DEFAULT 后面的值。DEFAULT 表达式中不允许使用函数。对于 ENUM 数据类型,DEFAULT 值包括 NULL 和空字符串('')。示例:mysql> Create table enum123(Rollno INT, Name Varchar(20), result ENUM('Pass', 'Fail') DEFAULT 'Fail'); ... 阅读更多

为什么我们不应该将数字存储到 MySQL ENUM 列中?

Jennifer Nicholas
更新于 2020年6月20日 08:59:29

1K+ 次浏览

MySQL 在内部将 ENUM 值存储为整数键(索引号)以引用 ENUM 成员。不将整数值存储在 ENUM 列中的主要原因是,很明显 MySQL 最终会引用索引而不是值,反之亦然。示例:下面的示例可以阐明这一点:mysql> Create table enmtest(Val ENUM('0', '1', '2')); Query OK, 0 rows affected (0.18 sec) mysql> Insert into enmtest values('1'), (1); Query OK, 2 rows affected (0.19 sec) Records: 2 Duplicates: 0 Warnings: 0 mysql> Select * from enmtest; +-----+ | Val | +-----+ | 1   | | 0 ... 阅读更多

如果作为参数提供的索引号不是整数,MySQL ELT() 函数的输出是什么?

Alankritha Ammu
更新于 2020年6月20日 08:56:38

78 次浏览

众所周知,ELT() 函数的第一个参数必须是整数值,但是当我们提供不是整数的索引号时,MySQL ELT() 函数会返回 NULL 并发出警告。示例:mysql> select ELT('one','Ram,is,good,boy')As Result; +--------+ | Result | +--------+ | NULL   | +--------+ 1 row in set, 1 warning (0.00 sec) mysql> Show Warnings; +---------+------+------------------------------------------+ | Level   | Code | Message                                  | +---------+------+------------------------------------------+ | Warning | 1292 | Truncated incorrect INTEGER value: 'one' | +---------+------+------------------------------------------+ 1 row in set (0.00 sec)

如何在表达式中使用 MySQL 中的枚举值?

varun
更新于 2020年2月3日 05:48:16

110 次浏览

众所周知,枚举值与索引值相关联,因此,如果我们在表达式中使用枚举值,则所有计算都将在索引号上进行。以下示例将阐明这一点:mysql> Select * from Result; +-----+--------+-------+ | Id  | Name   | Grade | +-----+--------+-------+ | 100 | Gaurav | GOOD  | | 101 | Rahul  | POOR  | | 102 | Rahul  | NULL  | | 103 | Mohan  |       | +-----+--------+-------+ 4 rows in set (0.00 sec) mysql> Select SUM(Grade) from result; +------------+ | SUM(Grade) | +------------+ ... 阅读更多

如果作为参数提供的索引号大于字符串数,MySQL ELT() 函数返回什么?

karthikeya Boyini
更新于 2020年6月20日 08:48:29

77 次浏览

如果作为参数提供的索引号大于字符串数,MySQL ELT() 函数将返回 NULL 作为输出。以下是一个更清晰的示例:示例:mysql> Select ELT(6,'Ram','is','a','good','boy')As Result; +--------+ | Result | +--------+ | NULL   | +--------+ 1 row in set (0.00 sec) 如我们所见,索引号为 6,字符串列表只有 5 个字符串。因此,MySQL 返回 NULL。

在 MySQL 中,FIELD() 函数与 FIND_IN_SET() 函数有何不同?

Arjun Thakur
更新于 2020年6月20日 08:49:28

1K+ 次浏览

众所周知,这两个函数都用于从提供的参数中搜索字符串,但它们之间存在一些显着差异,如下所示:FIND_IN_SET() - 函数使用字符串列表,该列表本身是一个包含用逗号分隔的子字符串的字符串。而 FIELD() 函数包含不同的字符串列表,它将在其中查找要搜索的字符串的索引号(如果存在)。FIND_IN_SET() - 函数如果任何参数(即搜索字符串或字符串列表)为 NULL,则返回 NULL。相反,FIELD() 函数不返回 NULL,而是返回 ... 阅读更多

MySQL FIND_IN_SET() 函数何时返回 NULL 作为输出?

Swarali Sree
更新于 2020年6月20日 08:46:53

255 次浏览

如果任何参数(即搜索字符串或字符串列表)为 NULL,FIND_IN_SET() 函数将返回 NULL 作为输出。当然,如果两个参数都为 NULL,它也会返回 NULL。示例:mysql> Select FIND_IN_SET(NULL,'Ram is a good boy') AS Result; +--------+ | Result | +--------+ | NULL   | +--------+ 1 row in set (0.00 sec) mysql> SELECT FIND_IN_SET('RAM',NULL)AS RESULT; +--------+ | RESULT | +--------+ | NULL   | +--------+ 1 row in set (0.00 sec) mysql> SELECT FIND_IN_SET(NULL,NULL); +------------------------+ | FIND_IN_SET(NULL,NULL) | +------------------------+ |                   NULL | +------------------------+ 1 row in set (0.00 sec)

如何将 FIND_IN_SET() 函数与 MySQL WHERE 子句一起使用?

Arushi
更新于 2020年6月20日 08:45:16

1K+ 次浏览

当我们在 WHERE 子句中使用 FIND_IN_SET() 函数时,它会在参数中指定的给定字符串内搜索搜索字符串,并从相关行中检索所有列。以下是一个演示它的示例:示例:在这个示例中,我们从“学生”表中获取列,其中行的名称值为“Gaurav”。这里,FIND_IN_SET() 函数将从“姓名”列的值中搜索搜索字符串“Gaurav”。mysql> Select Id, Name, Address, Subject from student WHERE FIND_IN_SET('Gaurav', Name); +------+--------+---------+-----------+ | Id   | Name   | Address | Subject   | +------+--------+---------+-----------+ ... 阅读更多

如果我们在 FIELD() 函数中作为参数提供的字符串列表中同时包含 NULL 值和其他值,MySQL 输出会受到什么影响?

Sai Subramanyam
更新于 2019年7月30日 22:30:21

64 次浏览

如果我们在 FIELD() 函数中作为参数提供的字符串列表中同时包含 NULL 值和其他值,则输出将发生重大变化。以下示例将对此进行演示:示例:mysql> Select FIELD('good', 'Ram', 'is', 'good', 'boy'); +---------------------------------------+ | FIELD('good', 'Ram', 'is', 'good', 'boy') | +---------------------------------------+ | 3 | +---------------------------------------+ 1 row in set (0.00 sec) ... 阅读更多

如果我向 ENUM 中插入无效值,MySQL 会返回什么?

Vrundesha Joshi
更新于 2020年1月30日 07:34:53

598 次浏览

如果严格 SQL 模式已禁用,并且我们将无效值(不在允许的枚举值列表中)插入 ENUM,则 MySQL 将插入空字符串而不是抛出错误。但是,如果启用了严格 SQL 模式,则 MySQL 在插入无效值时会抛出错误。示例:禁用严格 SQL 模式后,我们将无效字符串插入 ENUM,如下所示:mysql> Insert into result(id, name, grade) values(100, 'Gaurav', 'abcd'); Query OK, 1 row affected, 1 warning (0.03 sec) mysql> Select * from result; +-----+--------+-------+ | Id | Name    | Grade | +-----+--------+-------+ | ... 阅读更多

广告