求大神解答!我用pymssql从数据库中读取数据,两次测试的代码如下图,不同之处只有执行的SQL语句最后的判断部分,去掉判断条件后程序很快执行完,结果是不存在,但实际上是有符合匹配条件的记录存在的。
我也测试了很多次,只要加上条件判断where,无论具体的判断条件是什么,查询的结果都是无,难道这里的where是有什么bug存在吗?
漏传了一张图
你试着用另外一个查询条件试试,是不是这个EventName这个字段的类型不是string格式?
后台抓一下执行语句,或者捕捉一下有什么错误?
charset为什么用gbk不用utf8呢,数据库编码格式选的什么
sql语句前面那个“r”是什么
我好像找到原因了,字段内容是中文的都用了nvarchar类型,想要能筛选出出这种类型的字段用以下方法可行:
select convert(varchar,字段名) as XX from 表名
但是新问题又来了,如果判断语句中带有 中文,以上方法也行不通,如:
select convert(varchar,字段名) as XX from 表名 where EquipmentCategoryName='智能电表'
在一篇帖子里看到有说在nvarchar类型的字段前加个N可行,如:
select convert(varchar,字段名) as XX from 表名 where EquipmentCategoryName= N '智能电表'
但是经过测试,加了N也不行,查不到任何东西,也不会有输出。
所以where条件中带有中文,且字段类型是nvarchar的,该如何解决查询不出应有结果的问题?
编码格式试下这个CHARSET="utf8mb4"