这很愚蠢,但我真的不知道这里的问题是什么。我有一张桌子'简介'哪一列'国家',我从标签分隔的值文件中填充此表,并且表格视图似乎没问题。
现在执行此查询时:
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
感谢您阅读
答案 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。