Mysql 返回错误行数的SQL
我知道这似乎是一个简单的问题,但它的答案一直在逃避我很长一段时间了。我试图使用WHERE子句从数据库返回行数。我的质询如下:Mysql 返回错误行数的SQL,mysql,sql,Mysql,Sql,我知道这似乎是一个简单的问题,但它的答案一直在逃避我很长一段时间了。我试图使用WHERE子句从数据库返回行数。我的质询如下: $query = "SELECT COUNT(*) FROM nfl_current_season_games WHERE home_team = 'Indianapolis Colts' AND away_team = 'Chicago Bears' AND week = '1'"; 我
$query = "SELECT COUNT(*)
FROM nfl_current_season_games
WHERE home_team = 'Indianapolis Colts'
AND away_team = 'Chicago Bears'
AND week = '1'";
我百分之百肯定会有这样的争吵。我在phpmyadmin看到了。无论我是在phpmyadmin中使用纯SQL执行查询,还是通过php脚本在浏览器中执行查询,它仍然返回值0。我尝试在php中为$away_团队和$home_团队变量使用var_dump函数,它们都很好。我不知道该怎么办,因为这看起来很奇怪
有人有任何提示或线索吗
谢谢
Lance您可能在其中一列中有空白的stapces或排序问题 我建议您每次使用一个条件运行查询,并尝试找出导致问题的条件 当你发现后,把它贴在这里,看看我们是否能帮上忙 编辑: 尝试这样做(不确定mysql语法,但想法是修剪以删除blank空格并将其发送到upper): 我终于明白了: 印第安纳波利斯小马队在第一周客场对阵芝加哥熊队
有时这不是一个代码问题 周列的数据类型是否为字符串/字符? 如果不是,那么只给出不带引号的值1,否则(带引号)将解释为字符串/字符。 请尝试以下查询: $query=“选择计数(*) 来自nfl\u当前\u赛季\u比赛 何处主队=‘印第安纳波利斯小马队’ 客场球队=‘芝加哥熊队’ 周=1”
也许你的数据库中有一些(看不见的)数据空间?我也这么想。有什么办法可以找到吗?你能给出表和样本记录的结构吗?你可以使用trim函数来去除空格,例如trim(home_team)。一般来说,不只是回显你在查询中使用的变量,而是回显查询本身,你得到了你正在以这种方式执行的确切查询,它可能会暴露出一些你没有意识到你在犯的错误。我同意。尝试
WHERE week='1'
并检查是否得到正确的结果。然后尝试WHERE away\u team='Chicago Bears'和week='1'
,等等。MySQL字符串比较中不考虑尾随空格是真的吗?好的。我做到了。问题不在于“周”专栏。相反,这是主队和客队的专栏。除此之外,我不知道是什么导致了任何问题,因为php变量正是返回正确行数所需的变量。除非您预期数据会发生实际变化,否则不应该添加像这样的额外字符串操作,这只会降低速度。相反,如果值错误,只需更正它即可。
UPPERCASE(TRIM(away_team)) = 'CHICAGO BEARS'