MySQL EXPORT_SET()函数是如何工作的
它也是用于搜索的MySQL字符串函数。通过以下EXPORT_SET()函数的语法,我们可以了解其工作原理−
阅读更多:MySQL 教程
语法
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,则返回第二个参数即‘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,然后将被检查1和0,直到8位(在第一个示例中)和4位(在第二个示例中),因为8和4分别被指定为第五个参数。在显示输出时,我们可以观察到逗号(,)用作分隔符,因为它在这两个示例中均指定为第四个参数。
由于我们知道检查顺序是从右到左,即在我们的示例1000中,最右侧的位是0,因此将返回第三个参数即0,然后在接下来的两个位置上再次为0,然后在1处,因此返回第二个参数即1。在第二个示例中,我们收到了四个数字的输出,因为已经进行了四个数字的检查,但在第一个示例中,它是八个数字,因此我们在输出中收到了八个数字。输出顺序从左到右,因此在第一个示例中,输出显示为0,0,0,1,0,0,0,0,在第二个示例中显示为0,0,0,1。
极客教程