我想編寫一個查詢來從表中選擇名爲Description的列中所有包含單詞「piggy」的行。MySQL檢查一個單詞在單元格內出現多少次
SELECT * FROM table WHERE ...?
謝謝!
我想編寫一個查詢來從表中選擇名爲Description的列中所有包含單詞「piggy」的行。MySQL檢查一個單詞在單元格內出現多少次
SELECT * FROM table WHERE ...?
謝謝!
在MySQL中,%
是外卡。您不要使用=
運營商的通配符,而是使用LIKE
運營商的通配符。
SELECT * FROM table WHERE `Description` LIKE "%piggy%"
http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html
select * from table where description like '%piggy%'
將選擇並返回piggy字是列值的一部分的所有行。如果要統計有多少行則:
select count(*) from table where description like '%piggy%'
select * from table where description like '%piggy%'
正如多次提到的,你需要一個LIKE
查詢此。我只會提醒說,在InnoDB
表中,這將會非常緩慢,因爲它不支持全文掃描。如果您希望使用LIKE
獲得更好的性能,那麼您應該使用MyISAM
。
無論如何,如果你想實現一個搜索引擎,更好地尋找現有的API。我不知道你在用什麼編程語言,但如果是Java,我推薦Apache Lucene。
不僅在MySQL中:它是標準SQL表示法(如ISO/IEC 9075-2:2003標準)。 – 2009-11-07 15:03:50