MySQL:条件似乎无法正常工作

时间:2015-05-05 07:23:07

标签: mysql sql

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

francais     |espagnol         |allemand       |anglais  
-------------+-----------------+---------------+----------------
ORANGE litée |NARANJA ENCAJADA |ORANGEN GELEGT |ORANGE 1 LAYER
ORANGE LITEE |NARANJA ENCAJADA |ORANGEN GELEGT |ORANGE 1 LAYER

我的查询是:

SELECT * FROM T_TRADUCTION where francais= 'ORANGE LITEE';

此查询返回表的两行,而它应仅返回ORANGE LITEE值(不是ORANGE litée)的记录。

我不明白为什么。

3 个答案:

答案 0 :(得分:1)

将数据库整理更改为plug in

将您的数据库latin1_general_cs设置为DEFAULT CHARACTER

现在执行您的查询。

latin1

答案 1 :(得分:0)

尝试像这样纠正:

SELECT * FROM T_TRADUCTION where francais='ORANGE litée';

最诚挚的问候。

答案 2 :(得分:0)

正确获取编码很棘手,层次太多:浏览器, 页, PHP, 的MySQL。

您需要检查每层的数据流编码。

检查HTTP标头,标头。 检查请求正文中确实发送了什么。 别忘了MySQL几乎到处编码: 数据库 表 列 服务器整体 客户 确保到处都是正确的。

来自manual>

  

SET NAMES表示客户端将用于将SQL语句发送到服务器的字符集。因此,SET NAMES' cp1251'告诉服务器,“来自此客户端的未来传入消息是字符集cp1251。”它还指定了服务器用于将结果发送回客户端的字符集。 (例如,如果使用SELECT语句,它指示要用于列值的字符集。)