我得到了一些错误的结果
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/'
,任何人都可以告诉我错在哪里。
答案 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