我正在尝试使用WHERE语句来提取字段t.twittername
不为空的信息。下面的代码不起作用。我可以使用什么样的WHERE语句?
编辑:我尝试了WHERE t.twittername IS NOT NULL
,但仍然无效。
编辑:我现在正在显示完整的SQL语句。
以下是表tweets
的SQL:
CREATE TABLE IF NOT EXISTS `tweets` (
`tweetid` bigint(11) NOT NULL AUTO_INCREMENT,
`city` varchar(100) CHARACTER SET latin1 NOT NULL,
`submissionid` varchar(11) CHARACTER SET latin1 NOT NULL,
`shorturl` varchar(1000) CHARACTER SET latin1 NOT NULL,
`loginid` varchar(11) CHARACTER SET latin1 NOT NULL,
`twittername` varchar(1000) CHARACTER SET latin1 NOT NULL,
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`tweetid`)
代码:
$sqlStr3 = "SELECT
l.username
,l.loginid
,t.tweetid
,t.shorturl
,t.twittername
,t.time
,s.submissionid
,s.title
,s.url
,s.displayurl
,s.datesubmitted
,s.points
,COUNT(t.tweetid) countTweets
FROM tweets AS t
WHERE TRIM (t.twittername) IS NOT NULL AND TRIM(t.twittername) != ''
INNER JOIN login AS l ON t.loginid = l.loginid
INNER JOIN submission AS s ON t.submissionid = s.submissionid
GROUP BY t.tweetid
ORDER BY t.time DESC
LIMIT $offset, $rowsperpage";
答案 0 :(得分:2)
试
WHERE t.twittername IS NOT NULL
编辑 - 评论后:
尝试这个“极端”版本来检查字符串字段的空白:
WHERE TRIM (t.twittername) IS NOT NULL AND TRIM(t.twittername) != ''
编辑2 - 另一点:
您的SQL语句很奇怪 - 您引用s
但我看不到s
而您使用COUNT
但我看不到GROUP BY
和我也期待某种JOIN,我看不到......请展示真实的陈述......
编辑3 - OP显示声明和表格定义后:
我实际上不明白这句话应该产生什么但是试一试:
SELECT
l.username
,l.loginid
,t.tweetid
,t.shorturl
,t.twittername
,t.time
,s.submissionid
,s.title
,s.url
,s.displayurl
,s.datesubmitted
,s.points
,COUNT(t.tweetid) countTweets
FROM tweets AS t
INNER JOIN login AS l ON t.loginid = l.loginid
INNER JOIN submission AS s ON t.submissionid = s.submissionid
WHERE TRIM (t.twittername) IS NOT NULL AND TRIM(t.twittername) != ''
GROUP BY
l.username
,l.loginid
,t.tweetid
,t.shorturl
,t.twittername
,t.time
,s.submissionid
,s.title
,s.url
,s.displayurl
,s.datesubmitted
,s.points
ORDER BY t.time DESC
LIMIT $offset, $rowsperpage
答案 1 :(得分:1)
您可以使用is
运算符测试列是否为空:
-- ...
WHERE t.twittername IS NOT NULL;
此外,不要混淆缺少数据(NULL)和空字符串(''
,其中 一个值)。如果要测试字符串是否为空,请执行以下操作:
-- ...
WHERE t.twittername = '';