我有一个表格newsarchive
,其中有一tags
列可以输入多个用逗号分隔的值。我有一个页面,其中的新闻与指定的标签匹配newsarchive.tags
将显示与指定的标签匹配的新闻。页面中的标签也可以有多个值。
现在我想从页面中获取与标签匹配的记录newsarchive.tags
。有没有实现结果的SQL语句?
CREATE TABLE newsarchive (
newsid int(11) NOT NULL auto_increment,
headline text NOT NULL,
article text NOT NULL,
pdate date NOT NULL default '0000-00-00',
tags text NOT NULL,
PRIMARY KEY (newsid) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=107 ;
例子
newsarchive.tags of record#1="Nepal, Everest, Kathmandu"
newsarchive.tags of record#2="Kathmandu,Pokhara"
newsarchive.tags of record#3="Everest,Pokhara"
tags(in page)="Nepal, Kathmandu"
结果应该是:
record#1
record#2
我将SELECT
语句与IN
as一起使用
SELECT * FROM newsarchive WHERE tags IN ('Nepal','Kathmandu') ORDER BY postdate;
笔记:
如果标签匹配最多的记录首先出现,我会很高兴。