查找字符串中的值的mysql查询

时间:2011-10-21 21:16:40

标签: php mysql

我想知道我是否可以在查询中添加一些内容来搜索字符串中的单词。例如,如果我有一个名为user_purchased的字段,我想查询它并仅提取字符串中存在单词'dog'的记录。

我知道我可以使用像这样的

这样做
(!stristr($row['user_purchased'], 'dog'))

但是,我想知道我是否可以在查询本身中执行此操作,而这可能会加快性能。

提前感谢您的帮助

3 个答案:

答案 0 :(得分:1)

您可以使用LIKE:

WHERE your_col LIKE '%dog%'

如果您想获得更好的表现,可以查看full text search。这使用FULLTEXT索引快速查找匹配的行。

答案 1 :(得分:0)

在MySql中,您可以使用INSTR(str,substr)

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

的MySql手册中引用
INSTR(str,substr)

Returns the position of the first occurrence of substring substr in string str. This is the same as the two-argument form of LOCATE(), except that the order of the arguments is reversed.

mysql> SELECT INSTR('foobarbar', 'bar');
        -> 4
mysql> SELECT INSTR('xbar', 'foobar');
        -> 0
This function is multi-byte safe, and is case sensitive only if at least one argument is a binary string.

答案 2 :(得分:0)

SELECT * FROM table WHERE user_purchased LIKE'%dog%';