MySql,用LIKE%str%搜索

时间:2012-01-22 01:01:27

标签: mysql

我用查询搜索我的表包含LIKE子句%str%。

这是一种了解字符串'str'在句子中的位置的方法吗?

我想将'str'打印为标记(粗体)。

为此,我需要在包含'str'的任何行中确切的'str'开始的信息。

2 个答案:

答案 0 :(得分:2)

当然,你想要INSTR()。 你也可以在你的where子句中使用它,尽管你想要比较它和LIKE之间的性能

SELECT INSTR(`field`, 'str') FROM `table` WHERE 0 < INSTR(`field`, 'str')

请记住,INSTR()返回一个基于1的索引,即第一个字符是位置1,而不是位置0;保存0表示“未找到”。

答案 1 :(得分:2)

你可以使用POSITION函数(http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_position)得到字符串位置,但这可能不是最好的方法,因为如果他们多次使用标记,它只会返回第一个位置。用你想要的任何标记包裹的字符串替换字符串会更容易。

如果您想要一个全MySQL解决方案,这可能会有效:

SELECT REPLACE(exampleTable.field, 'search_string', '<b>search_string</b>')
FROM exampleTable
WHERE exampleTable.field LIKE '%search_string%';

但是我会建议在PHP / ASP方面做这样的替换...使用相应语言的字符串替换工具。