我想编写一个查询,在名为Description的列中从表中选择单词“piggy”的所有行。
SELECT * FROM table WHERE ...?
谢谢!
答案 0 :(得分:1)
select * from table where description like '%piggy%'
将选择并返回单词piggy是列的值的一部分的所有行。如果你想计算多少行:
select count(*) from table where description like '%piggy%'
答案 1 :(得分:1)
select * from table where description like '%piggy%'
答案 2 :(得分:1)
在MySQL中,%
是一张外卡。您不应将通配符与=
运算符一起使用,而应使用LIKE
运算符。
SELECT * FROM table WHERE `Description` LIKE "%piggy%"
http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html
答案 3 :(得分:1)
如上所述,您需要LIKE
次查询。我只会警告,如果InnoDB
表格不支持全文扫描,这将会非常慢。如果您希望使用LIKE
获得更好的效果,则应使用MyISAM
。
无论如何,如果你想实现一个搜索引擎,更好地寻找现有的API。我不知道您使用的是哪种编程语言,但如果是Java,我建议使用Apache Lucene。