0

我想编写一个查询以从表中选择名为“描述”的列中包含“piggy”一词的所有行。

SELECT * FROM table WHERE ...?

谢谢!

4

4 回答 4

1
select * from table where description like '%piggy%'

将选择并返回单词 piggy 是列值的一部分的所有行。如果要计算行数,则:

select count(*) from table where description like '%piggy%'
于 2009-11-07T14:34:15.917 回答
1
select * from table where description like '%piggy%'
于 2009-11-07T14:34:31.110 回答
1

在 MySQL 中,%是一个通配符。您不对运算符使用通配符,=而是对LIKE运算符使用通配符。

SELECT * FROM table WHERE `Description` LIKE "%piggy%"

http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html

于 2009-11-07T14:36:20.687 回答
1

正如多次提到的,您需要LIKE对此进行查询。我只会警告说,在InnoDB表格的情况下这将非常缓慢,因为它不支持全文扫描。如果你想用 a 获得更好的性能LIKE,那么你应该使用MyISAM.

无论如何,如果你想实现一个搜索引擎,最好寻找现有的 API。我不知道您使用的是什么编程语言,但如果是 Java,我会推荐Apache Lucene

于 2009-11-07T14:39:51.503 回答