Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算sqlite中匹配的值_Sql_Sqlite - Fatal编程技术网

计算sqlite中匹配的值

计算sqlite中匹配的值,sql,sqlite,Sql,Sqlite,我想计算数据中的匹配值,如(表1) 下面的查询 Select * from table1 where subject like ‘%english%’ or subject like ‘%stat%’ 返回前两行: 但我还需要计算匹配的值,如下面的输出 count 1 2 0 (因为第一行中只有一个值匹配,第二行中有两个匹配,第三行中没有匹配) 我可以得到所需的输出吗?您可以尝试对检查每个条件的大小写表达式求和: SELECT subject, CASE WHE

我想计算数据中的匹配值,如(表1)

下面的查询

Select *
from table1
where subject like ‘%english%’ or 
      subject like ‘%stat%’
返回前两行:

但我还需要计算匹配的值,如下面的输出

count
1
2
0
(因为第一行中只有一个值匹配,第二行中有两个匹配,第三行中没有匹配)


我可以得到所需的输出吗?

您可以尝试对检查每个条件的
大小写
表达式求和:

SELECT
    subject,
    CASE WHEN subject LIKE '%english%' THEN 1 ELSE 0 END +
    CASE WHEN subject LIKE '%stat%' THEN 1 ELSE 0 END AS count
FROM 
    yourTable;
如果您想获得每个主题中与两个关键字之一不匹配的字数,您可以尝试:

SELECT
    subject,
    LENGTH(subject) - LENGTH(REPLACE(subject, ' ', '')) + 1 -
    ( subject LIKE '%English%' ) - ( subject LIKE '%stat%' ) AS count
FROM yourTable;


SQLite分别为
true
false
验证返回布尔值的条件,因此您可以这样做:

select *,
  (subject like '%english%') 
  + 
  (subject like '%stat%') as count 
from table1 

非常感谢。我明白了。请再帮我一个忙。我还可以计算不匹配的值,如输出计数(2,1,3)(因为在第一行中有两个值不匹配,在第二行中有一个不匹配,在第三行中没有匹配)。@taliafrasat检查我的更新答案以了解执行此操作的方法。是。。但是为什么要加+1呢?它会给出输出计数(3,2,4)…但是如果没有+1,我会得到完全相同的输出计数(2,1,3)。我会在删除所有空格之前和之后计算
主题的长度。假设
主题是一个单词,这个差异将为零,但是因为我们知道确实有一个单词,我们需要
+1
作为偏移量。我也可以得到不匹配的内容或值,如列名称(数学计算机、计算机、化学物理生物)?请再帮我一个忙。我还可以计算不匹配的值,如输出计数(2,1,3)(因为第一行中有两个值不匹配,第二行中有一个不匹配,第三行中没有匹配)
select *,
  (subject like '%english%') 
  + 
  (subject like '%stat%') as count 
from table1