EXPORT_SET() 函数在 MySQL 中如何工作?

mysqlmysqli database

它也是一个用于搜索的 MySQL 字符串函数。借助 EXPORT_SET() 函数的以下语法,我们可以了解其工作方式 −

语法

EXPORT_SET(bits, on, off, Separator, number of bits)

在此语法中,

要比较位(将整数转换为位后获得)是 1 还是 0。

‘On’ 是该函数的第二个参数,在引号中可以有任何值,如果第一个参数中某个位的值为 1,则将返回该参数。

‘Off’是函数的第三个参数,引号中可以有任何值,如果第一个参数中某个位的值为 0,则返回该值。

分隔符用于在显示输出时放置在返回值之间。它可以是引号中的任何字符或值。

多个位具有要比较的位的值,它们是 1 还是 0。

EXPORT_SET() 函数的工作原理

其工作原理如下 −

  • 首先,作为第一个参数给出的整数值将转换为多个位(即 0 和 1)。然后检查每个位是 1 还是 0。检查顺序是从右到左。
  • 现在,MySQL 决定在检查位是 1 还是 0 之后做什么。如果位是 1,它返回第二个参数,即"on"。如果位是 0,它返回第三个参数,即"off"。
  • 检查继续进行,直到达到第五个参数中指定的位数。
  • 现在,基于上述内容,MySQL 将返回输出并在返回值之间放置分隔符。值将从左到右返回。

示例

mysql> Select EXPORT_SET(8, '1','0',',', 8);

+-------------------------------+
| EXPORT_SET(8, '1','0',',', 8) |
+-------------------------------+
| 0,0,0,1,0,0,0,0               |
+-------------------------------+

1 row in set (0.00 sec)

mysql> Select EXPORT_SET(8, '1','0',',', 4);

+-------------------------------+
| EXPORT_SET(8, '1','0',',', 4) |
+-------------------------------+
| 0,0,0,1                       |
+-------------------------------+

1 row in set (0.00 sec)

在两个例子中,我们给出了 8 作为第一个参数,它将被转换为位,即 1000,然后检查 8 位以内的 1 和 0(在第一个例子中)和 4 位以内的 0(在第二个例子中),因为 8 和 4 分别在第一个和第二个例子中被指定为第五个参数。在显示输出时,我们可以观察到逗号 (,) 被用作分隔符,因为它在两个例子中都被指定为第四个参数。

我们知道检查的顺序是从右到左,即在我们的示例 1000 中,最右边的位是 0,因此将返回第三个参数,即 0,然后接下来的两个位置又是 0,因此将返回另外两个 0,然后是 1,因此返回第二个参数,即 1。在第二个示例中,我们收到的输出最多为 4 位数字,因为检查已达到 4 位数字,但在第一个示例中,最多为 8 位数字,因此我们在输出中收到 8 位数字。输出的顺序是从左到右,因此在第一个示例中输出显示为 0,0,0,1,0,0,0,0,而在第二个示例中输出显示为 0,0,0,1。


相关文章