gpt4 book ai didi

mysql - 通过比较 ENUM 和 SET 列来选择行的最佳方法是什么

转载 作者:行者123 更新时间:2023-11-29 13:48:44 24 4
gpt4 key购买 nike

我的意思是,如果任何表包含 ENUM 或 SET 类型列,我将进行如下查询:

SELECT * FROM `tabname` WHERE `enum_field` = 'case1' OR `enum_field` = 'case2'

会有效率吗?或者引擎会将 enum_field 中存储的数字转换为字符串,将其与模式进行比较(在我的示例中 - case1 和 case2)?使用此类列的最有效方法是什么?

谢谢!

最佳答案

您上面提供的语法是正确的。
数据库引擎会将查询中的字符串转换为数字索引,以便在搜索表时使用。

根据mysql documentation ,您也可以直接通过数字索引进行查询,但这有时会产生意外的结果,特别是当您的任何枚举字符串值是数字时。

因此假设“case1”的索引为 1,“case2”的索引为 2,您可以像这样重写查询:

SELECT * FROM `tabname` WHERE `enum_field` = 1 OR `enum_field` = 2

关于mysql - 通过比较 ENUM 和 SET 列来选择行的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17030340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com