简单的选择查询不起作用?

时间:2013-06-14 09:01:17

标签: mysql sql

PROVINCE -- varchar(25) 

SELECT * FROM listings WHERE PROVINCE='Bakersfield'

当Bakersfield作为省的条目存在时,返回空结果集

我很不确定为什么。当我删除WHERE时,它就可以了。

BTW我在phpmyadmin中运行它,它允许一个人执行SQL语句

在phpmyadmin中,它显示在等号下面。我不知道为什么。这可能是一个暗示。

3 个答案:

答案 0 :(得分:2)

如果

SELECT * FROM listings WHERE PROVINCE like '%Bakersfield%'

适合您,那么您的数据中就有空格。您可以使用

删除它们
update listings
set PROVINCE = trim(PROVINCE)

请参阅TRIM()

之后,您应该检查插入数据的代码。检查插入空格的原因并进行修复。

答案 1 :(得分:1)

将您等同于=改为LIKE运营商

SELECT * FROM listings WHERE PROVINCE LIKE 'Bakersfield'

这应该可以解决您的问题。如果您想查找包含字符串的地方,只需使用通配符%..%

将其包围
SELECT * FROM listings WHERE PROVINCE LIKE '%Bakersfield%'

答案 2 :(得分:1)

SELECT * FROM listings WHERE PROVINCE='Bakersfield'

如果以下情况不是问题,那么abpve查询就没有用了。

1)如果是概率,则使用上限或下限

SELECT * FROM listings WHERE upper(PROVINCE)=upper('Bakersfield');

2)如果问题是额外的空间,请使用replace或Trim

SELECT * FROM listings WHERE replace(PROVINCE,' ','') ='Bakersfield'

如果没有,可能会有其他感恩节,然后使用其他人建议的“赞”关键字。 :)