我有一个非常简单的MySQL表,其中包含一些列,1列包含一个名为VARCHAR
的{{1}}数据。像这样:
user_country
当我查询时:
user_country
-----------------
United States
United States
Germany
Singapore
India
Italy
OR
SELECT * FROM `my_table` WHERE `user_country` = 'United States' LIMIT 0,10
..他们正在返回空结果。
SELECT * FROM `my_table` WHERE `user_country` = 'Singapore'
,则会返回。注意:那里没有任何空格。
答案 0 :(得分:0)
好吧,似乎你在列出它们时看不到的值中有空格。所以我的猜测是,当应用程序将数据添加到表中时,它会添加一些空格并稍后创建问题。您需要检查在DB中添加数据的脚本,并确保在发送到DB之前修剪它们
快速解决方案是使用单个更新命令删除所有白色空格
update my_table set user_country = trim(user_country);
此外,将表格排序和字符类型设为utf8_general_ci
和utf8
可以使用以下命令更改
ALTER TABLE my_table CHARACTER SET utf8, COLLATE utf8_general_ci;