Php Mysql:计算有多少行具有一个或多个特定关键字

Php Mysql:计算有多少行具有一个或多个特定关键字,php,mysql,sql,Php,Mysql,Sql,我试图在一个具有不同句子的VARCHAR列的表中计算至少有一个匹配关键字的行数 例如,如果我想搜索“房子”、“猫”和“狗”,我在表格中有一些句子,如“房子装饰”、“猫咬”、“狗粮”和“房子照片”,当我搜索这些关键字时,我想得到结果3 我试过了 SELECT COUNT(*) FROM insr WHERE `Nome` LIKE 'house' OR `Nome` LIKE 'cat' OR `Nome` LIKE 'dog'; 但是计数总是返回0 我已经搜索了很多类似的内容

我试图在一个具有不同句子的VARCHAR列的表中计算至少有一个匹配关键字的行数

例如,如果我想搜索“房子”、“猫”和“狗”,我在表格中有一些句子,如“房子装饰”、“猫咬”、“狗粮”和“房子照片”,当我搜索这些关键字时,我想得到结果3

我试过了

SELECT 
    COUNT(*) 
FROM insr 
WHERE `Nome` LIKE 'house' 
OR `Nome` LIKE 'cat' 
OR `Nome` LIKE 'dog';
但是计数总是返回0


我已经搜索了很多类似的内容,但仍然没有找到任何内容

您需要为类似的
使用通配符:

SELECT COUNT(*)
FROM insr
WHERE `Nome` LIKE '%house%' OR `Nome` LIKE '%cat%' OR `Nome` LIKE '%dog%';

如果没有通配符,
LIKE
的行为非常类似于
=

您需要为
LIKE
使用通配符:

SELECT COUNT(*)
FROM insr
WHERE `Nome` LIKE '%house%' OR `Nome` LIKE '%cat%' OR `Nome` LIKE '%dog%';

如果没有通配符,
LIKE
的行为非常像
=

这是因为您正在寻找确切的单词。必须使用通配符查找包含单词的字段,如下所示:

SELECT count(*) FROM insr WHERE Nome LIKE '%house%' OR Nome LIKE '%cat%' OR Nome LIKE '%dog%';

这是因为你在寻找确切的单词。必须使用通配符查找包含单词的字段,如下所示:

SELECT count(*) FROM insr WHERE Nome LIKE '%house%' OR Nome LIKE '%cat%' OR Nome LIKE '%dog%';

您必须在模式中添加一个空格

SELECT COUNT(*)
FROM insr
WHERE `Nome` LIKE '% house %' OR `Nome` LIKE '% cat %' OR `Nome` LIKE '% dog %';

您必须在模式中添加一个空格

SELECT COUNT(*)
FROM insr
WHERE `Nome` LIKE '% house %' OR `Nome` LIKE '% cat %' OR `Nome` LIKE '% dog %';

可以使用正则表达式

SELECT COUNT(*) FROM insr WHERE `Nome` REGEXP 'house|cat|dog';

REGEXP添加了通配符,您不必为此担心。

您可以使用正则表达式

SELECT COUNT(*) FROM insr WHERE `Nome` REGEXP 'house|cat|dog';
REGEXP添加了通配符,您不必为此担心。

%对于通配符:%s对于通配符: