首页 > 解决方案 > MySql 使用 Where 子句过滤枚举值

问题描述

在数据库中,我有 enum 列,我在其中存储这些值:

ClassName                         
----------------------------------
Page                              
DFM\BlogCategory                  
DFM\BlogPage                      
DFM\HomePage                      
DFM\PostPage                      
DFM\Product                       
DFM\ProductCategory               
DFM\ShopPage                      
SilverStripe\ErrorPage\ErrorPage  

当我尝试显示所有行时,WHERE ClassName='DFM\Product'我得到 0 个结果。但是 tere 是 3 条记录。当我尝试WHERE ClassName='Page'这项工作时。

为什么当我以格式在 WHere 子句值中传递值时,namespace我没有得到结果?

在此处输入图像描述

标签: mysql

解决方案


检查\是否有问题或尝试使用该功能trimreplace记录中可能有空格。

例子:

WHERE trim(ClassName)='DFM\Product'

或者

WHERE REPLACE(ClassName,' ','')='DFM\Product'

WHERE REPLACE(ClassName,'\','')=Replace('DFM\Product','\','')

推荐阅读