MySQL查询 - 不等于不显示正确的数据

时间:2014-08-06 11:55:10

标签: php mysql

我得到了一些错误的结果

mt表看起来像

Name    Mobile     Upload
Aro     xxxxx     /var/www/cms/cvs/
Aro     xxxxx     /var/www/cms/cvs/
Aro     xxxxx     /var/www/cms/cvs/ghgrfr.docx
Aro     xxxxx     /var/www/cms/cvs/
Aro     xxxxx     /var/www/cms/cvs/ghg.docx

我想只计算具有.docx的列,所以我的结果应该是2但现在我得到的所有5都是我的查询

 SELECT count( `upload` ) AS totalnamecv
    FROM `contact`
    WHERE `upload` <> '/var/www/cms/cvs/'

,任何人都可以告诉我错在哪里。

3 个答案:

答案 0 :(得分:0)

对我来说很好..尝试运行

SELECT * FROM contact WHERE `upload` <> '/var/www/cms/cvs/' LIMIT 10

要检查您是否过滤了行...我怀疑您没有在表格中编码的确切值。

我认为你没有做upload = '/var/www/cms/cvs/ghj.docx'

的原因

答案 1 :(得分:0)

我真的不明白你想做什么。你能表明你是怎么表的吗?

您正在查询&#34;计算所有联系人,其中mobile1不为空,mobile1不是&#39;&#39;上传不是/ var / www / cms / cvs /(确切地说),contacttype是Person&#34;

所以,如果你有 联系表 mobile1上传联系方式 1 /var/www/cms/cvs/ghj.docx人

此查询将显示它,因为&#39; /var/www/cms/cvs/ghj.docx'不是&#39; / var / www / cms / cvs /&#39;

如果你想得到的东西就像(包含)一个部分,你应该使用运算符LIKE 您可以获得更多信息http://msdn.microsoft.com/es-es/library/ms179859.aspx

答案 2 :(得分:0)

更新

也许您在该列中有前导或尾随空格。首先尝试清理该列,如下所示

UPDATE contact
SET upload = TRIM(upload);

然后触发您的查询


将您的SQL语句更改为此

SELECT * 
FROM contact
WHERE upload != '/var/www/cms/cvs/' 
  AND contacttype = 'Person'
  AND mobile1 IS NOT NULL 
  AND mobile1 != '';

或者如果您只需要计数,请

SELECT COUNT(upload) 
FROM contact
WHERE upload != '/var/www/cms/cvs/' 
  AND contacttype = 'Person'
  AND mobile1 IS NOT NULL 
  AND mobile1 != '';

检查工作SQL Fiddle