mysql - 计算MYSQL中的非空字段

标签 mysql sql

我有这个简单的 MYSQL 表 1:

id
 1
 2
 3

还有这个表 2:

 id | question | answer
  1 |  how     | 
  2 |  are     | fine
  3 |  you     | ok

这个简单的查询:

SELECT table1.id,COUNT(answer NOT NULL) FROM table1 LEFT JOIN table2
       ON table1.id = table2.id

我想计算非空答案字段。我试过 NOT NULL 但它不起作用,因为 answer 列是 NOT NULL 并且 where 不适用,因为它将导致主查询不返回任何内容

最佳答案

您可以使用 CHAR_LENGTH(str)函数来检查值的长度。 使用以下查询:

SELECT COUNT(answer) FROM table WHERE CHAR_LENGTH(answer)>0;   

来自 Reference Doc.

编辑:
你可以试试这个查询:

SELECT COUNT(answer) FROM table1 LEFT JOIN table2
       ON table1.id = table2.id AND CHAR_LENGTH(table2.answer)>0

关于mysql - 计算MYSQL中的非空字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25934309/

相关文章:

mysql - 使用 CONCAT 和 SELECT 更新 mysql 字段

MySQL 如果存在则从表中抓取,否则使用不同的表

mysql - 尝试限制 mysql 结果中显示的数量

SQL Server : update column in a tree

java - 关闭连接后使用结果集数据

sql - 将连接表的结果限制为一行

php - 如何在 Codeigniter 3 中创建两个连接?

mySQL select í 返回带有 i 的结果

php - 同一id只显示一行

sql - 编写可怕的 SQL 搜索查询(第二阶段)