Simple MySql select语句返回0行

时间:2014-06-26 07:14:33

标签: mysql sql database

这很愚蠢,但我真的不知道这里的问题是什么。我有一张桌子'简介'哪一列'国家',我从标签分隔的值文件中填充此表,并且表格视图似乎没问题。

现在执行此查询时:

select * from profiles where country = 'Sweden'

没有任何东西可以归还,虽然该表有超过一百个条目与国家'瑞典'我仔细检查了我的拼写。

但是在执行此查询时:

select * from profiles where country REGEXP 'Sweden'

按预期返回结果。

原因是什么?以及如何解决它?

以下是用于填写表格的文件中的一些数据:

0   f   Germany
1   f   Canada
2       Germany
3   m   Mexico
4   m   United States
5   m   United Kingdom
6   m   Finland

感谢您阅读

4 个答案:

答案 0 :(得分:1)

请尝试使用like operator。

从个人资料中选择* WHERE country LIKE'%Sweden%'

答案 1 :(得分:0)

如果国家/地区字段中有任何前导或尾随空格,请尝试使用TRIM函数

select * from profiles where TRIM(country) = 'Sweden'

OR

select * from profiles where TRIM(country) LIKE 'Sweden'

OR

select * from profiles where country LIKE '%Sweden%'

或检查字段列表中的carrige返回值

SELECT * FROM profiles WHERE country REGEXP "\r\n";

答案 2 :(得分:0)

如果您的过滤器数据以字符形式输入,则最好使用LIKE等操作符。

SELECT * FROM profiles WHERE upper(country) LIKE upper('Sweden');

答案 3 :(得分:0)

可能你必须存储'瑞典'在表中有尾随空格,所以只需检查

从TRIM(国家/地区)='瑞典'

的个人资料中选择*

REGEX运营商列出了包含'瑞典'在它的任何地方

EG:Sweden_,__Sweden,Sweden。