sql - SQL语句中的 "set+0"是做什么用的?

标签 sql mysql

我对这条 SQL 语句的含义感到困惑:

SELECT exhibitor_categories+0 from exhibitor_registry

什么是 exhibitor_categories+0 ?它为返回的每一行返回一个数字。

exhibitor_categories 定义为:

set('contemporary', 'classical impression / transitional', 'outdoor', 'home accessories')

感谢您的宝贵时间:)

最佳答案

它将设置值隐式转换为 INTEGER

集合被视为位图,因此第一个值设置位 0,第二个值设置位 1 等。

mysql> CREATE TABLE exhibitor_registry(exhibitor_categories set('contemporary',
'classical impression / transitional', 'outdoor', 'home accessories') NOT NULL);

Query OK, 0 rows affected (0.08 sec)

mysql> INSERT
    -> INTO    exhibitor_registry
    -> VALUES  ('contemporary,classical impression / transitional,outdoor');
Query OK, 1 row affected (0.03 sec)

mysql> SELECT  exhibitor_categories
    -> FROM    exhibitor_registry;
+----------------------------------------------------------+
| exhibitor_categories                                     |
+----------------------------------------------------------+
| contemporary,classical impression / transitional,outdoor |
+----------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT  exhibitor_categories + 0
    -> FROM    exhibitor_registry;
+--------------------------+
| exhibitor_categories + 0 |
+--------------------------+
|                        7 |
+--------------------------+
1 row in set (0.00 sec)

关于sql - SQL语句中的 "set+0"是做什么用的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1702462/

相关文章:

mysql - 在单个查询 Mysql 中获取相应 ID 的计数

c# - 每当数据库中的数据更新时通知客户

带有 group by 的 sql select 语句

MYSQL <= 运算符不适用于值 9999

mysql - LOAD DATA INFILE 应使用特定内容填充空值

sql - ORM 性能成本

MySQL - 在内部选择中使用 "as"

mysql - 通过iOS应用程序将数据从json(php webservice)修改为mysql

MySQL复杂嵌套查询创建 View

java - 将默认类路径设置为在命令提示符下的 `java` 命令中使用