在MySQL中使用MATCH和AGAINST选择特定列中包含字符串的行
让我们首先创建一个表-
mysql> create table DemoTable1833 ( Name varchar(20) );
修改表-
Mysql> alter table DemoTable1833 ADD FULLTEXT(Name); Records: 0 Duplicates: 0 Warnings: 1
使用插入命令在表中插入一些记录-
mysql> insert into DemoTable1833 values('John Doe'); mysql> insert into DemoTable1833 values('Adam Smith'); mysql> insert into DemoTable1833 values('Chris Brown'); mysql> insert into DemoTable1833 values('John Smith');
使用select语句显示表中的所有记录-
mysql> select * from DemoTable1833;
这将产生以下输出-
+-------------+ | Name | +-------------+ | John Doe | | Adam Smith | | Chris Brown | | John Smith | +-------------+ 4 rows in set (0.00 sec)
这是查询以选择在特定列中包含字符串的行
mysql> select * from DemoTable1833 where MATCH(Name) AGAINST('+John Smith+') ;
这将产生以下输出-
+------------+ | Name | +------------+ | John Smith | | John Doe | | Adam Smith | +------------+ 3 rows in set (0.00 sec)