首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL: Where条件似乎不能正常工作

问MySQL: Where条件似乎不能正常工作
EN

Stack Overflow用户
提问于 2015-05-05 15:23:07
回答 3查看 87关注 0票数 0

我有一个名为Traduction的表,其中包含以下两行:

代码语言:javascript
复制
francais     |espagnol         |allemand       |anglais  
-------------+-----------------+---------------+----------------
ORANGE litée |NARANJA ENCAJADA |ORANGEN GELEGT |ORANGE 1 LAYER
ORANGE LITEE |NARANJA ENCAJADA |ORANGEN GELEGT |ORANGE 1 LAYER

我的问题是:

代码语言:javascript
复制
SELECT * FROM T_TRADUCTION where francais= 'ORANGE LITEE';

该查询返回表中的两行,而它应该只返回具有ORANGE LITEE值(而不是ORANGE litée)的记录。

我不明白为什么。

EN

回答 3

Stack Overflow用户

发布于 2015-05-05 15:51:47

将数据库排序规则更改为latin1_general_cs

将数据库DEFAULT CHARACTER设置为latin1

现在执行您的查询。

代码语言:javascript
复制
SELECT * FROM T_TRADUCTION where francais= 'ORANGE LITEE';
票数 1
EN

Stack Overflow用户

发布于 2015-05-05 15:33:34

试着像这样纠正它:

代码语言:javascript
复制
SELECT * FROM T_TRADUCTION where francais='ORANGE litée';

诚挚的问候。

票数 0
EN

Stack Overflow用户

发布于 2015-05-05 16:02:29

正确的编码是棘手的,有太多的层:浏览器,页面,PHP,MySQL。

你需要对每一层的数据流进行检查。

检查HTTP标头,标头。检查请求正文中真正发送的内容。不要忘记,MySQL几乎到处都有编码:数据库、表、列、服务器,作为一个整体,客户端要确保到处都有正确的编码。

来自manual>

SQL指示客户端将使用什么字符集将

语句发送到服务器。因此,集合名称'cp1251‘告诉服务器,“将来从这个客户端传入的消息都是字符集的cp1251。”它还指定服务器将结果发送回客户端时应使用的字符集。(例如,如果您使用SELECT语句,则它指示用于列值的字符集。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30046605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档