使用mysql如何计算成功OR的数量?

Yes*_*day 2 php mysql select

我基本上想要计算成功的ors的数量,以便我可以告诉每个项目与搜索查询的相关性.这是表结构:

CREATE TABLE `items` (
 `id` int(11) NOT NULL auto_increment,
 `listing_id` int(11) NOT NULL,
 `name` varchar(256) NOT NULL,
 `description` varchar(1000) NOT NULL,
 `image` varchar(100) NOT NULL,
 `image_caption` varchar(100) NOT NULL,
 `keywords` varchar(10000) NOT NULL,
 PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=90 DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)

这是一个行的例子:

 `id` = 1
 `listing_id` = 1,
 `name` = 'listing test',
 `description` = 'listing desc',
 `image` = '',
 `image_caption` = '',
 `keywords` = 'youtube video fun'
Run Code Online (Sandbox Code Playgroud)

这就是我想要mysql在伪代码中做的事情:

 SELECT id,name,description AND count FROM items WHERE `keywords` LIKE '%video%' AND LIKE '%keyword2%' AND LIKE '%youtube%' AND LIKE '%text%'
Run Code Online (Sandbox Code Playgroud)

我希望得到这些结果:

 `id` = 1
 `name` = 'listing test',
 `description` = 'listing desc',
 `count` = 2
Run Code Online (Sandbox Code Playgroud)

dus*_*uff 5

像这样的东西.(我使用"得分"而不是"计数",因为"count"是一个SQL函数名.)

SELECT id, name, description, (
    IF(keywords LIKE '%video%', 1, 0)
  + IF(keywords LIKE '%keyword2%', 1, 0)
  + IF(keywords LIKE '%keyword3%', 1, 0)
) score
FROM table
HAVING score > 0
Run Code Online (Sandbox Code Playgroud)

请注意,此查询将非常慢,因为它必须检查每一行.