Mysql 查询与字段的一个或多个条件匹配的行
我想选择与一个或多个条件匹配的行 示例表和数据Mysql 查询与字段的一个或多个条件匹配的行,mysql,sql,select,Mysql,Sql,Select,我想选择与一个或多个条件匹配的行 示例表和数据 #ID #NAME #KEYWORDS(Varchar) 1 BBC news,finance 2 CNN music,finance,sports 3 CNBC music,sports,finance 用户搜索条件将是体育、金融(可以是多个用逗号分隔的关键字),我在查询之前将其准备到关键字字符串列表中 当我像下面一样使用sql(1)时,它只选择CNN和CNBC SELECT * from channel where Keyw
#ID #NAME #KEYWORDS(Varchar)
1 BBC news,finance
2 CNN music,finance,sports
3 CNBC music,sports,finance
用户搜索条件将是体育、金融
(可以是多个用逗号分隔的关键字),我在查询之前将其准备到关键字字符串列表中
当我像下面一样使用sql(1)时,它只选择CNN和CNBC
SELECT * from channel where Keywords LIKE '%sports%' OR '%finance%';
但是当我使用下面的sql(2)时,请看BBC、CNN、CNBC
SELECT * from channel where Keywords LIKE '%finance%' OR '%sports%'
我的要求是我想选择所有与关键字匹配的行(在上面的例子中:体育、财经应该得到BBC、CNN和CNBC,因为这三个都有财经)
由于用户输入将是一个字符串(体育、金融等),我只是根据不同的输入进行查询
SELECT *
FROM table1
WHERE FIND_IN_SET('finance', keywords) or
FIND_IN_SET('sports', keywords)
SELECT *
from table1
where Keywords LIKE '%sports%' OR
Keywords LIKE '%finance%'
SELECT *
FROM channel
WHERE FIND_IN_SET('finance', keywords)
UNION
SELECT *
FROM channel
FIND_IN_SET('sports', keywords)
您使用数据库引擎INNODB还是MYISAM?