找到 4219 篇文章 关于 MySQLi
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'); ... 阅读更多
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 ... 阅读更多
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)
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) | +------------+ ... 阅读更多
1K+ 次浏览
众所周知,这两个函数都用于从提供的参数中搜索字符串,但它们之间存在一些显着差异,如下所示:FIND_IN_SET() - 函数使用字符串列表,该列表本身是一个包含用逗号分隔的子字符串的字符串。而 FIELD() 函数包含不同的字符串列表,它将在其中查找要搜索的字符串的索引号(如果存在)。FIND_IN_SET() - 函数如果任何参数(即搜索字符串或字符串列表)为 NULL,则返回 NULL。相反,FIELD() 函数不返回 NULL,而是返回 ... 阅读更多
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)
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 | +------+--------+---------+-----------+ ... 阅读更多
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) ... 阅读更多
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 | +-----+--------+-------+ | ... 阅读更多