我想编写一个查询以从表中选择名为“描述”的列中包含“piggy”一词的所有行。
SELECT * FROM table WHERE ...?
谢谢!
select * from table where description like '%piggy%'
将选择并返回单词 piggy 是列值的一部分的所有行。如果要计算行数,则:
select count(*) from table where description like '%piggy%'
select * from table where description like '%piggy%'
在 MySQL 中,%
是一个通配符。您不对运算符使用通配符,=
而是对LIKE
运算符使用通配符。
SELECT * FROM table WHERE `Description` LIKE "%piggy%"
http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html
正如多次提到的,您需要LIKE
对此进行查询。我只会警告说,在InnoDB
表格的情况下这将非常缓慢,因为它不支持全文扫描。如果你想用 a 获得更好的性能LIKE
,那么你应该使用MyISAM
.
无论如何,如果你想实现一个搜索引擎,最好寻找现有的 API。我不知道您使用的是什么编程语言,但如果是 Java,我会推荐Apache Lucene。