如何找到sql选择它的字符的位置

时间:2015-10-03 11:05:45

标签: mysql sql database

我陷入了一个非常复杂的问题。 我在我的数据库中定义了一个包含以下字段的表:id,title,category,little,flag,description。 对于此表中具有特定名称的搜索部分,我在函数中编写了以下查询:

 $dsearch=mysql_real_escape_string($condition['title']);
"select id, title , category, little, flag, description 
            from    tbl_contents 
            where  title RLIKE  '[[:<:]]".$dsearch."[[:>:]]'
                   or 
                   description RLIKE  '[[:<:]]".$dsearch."[[:>:]]' 
            order by priority desc"

现在这里是我的问题:当在此表的“描述字段”中找到“dsearch”时,我也想要它的“位置”。例如:如果dsearch = Chance和Chance存在于其中一行的描述字段中,它将返回该描述字段中Chance的位置。 你会帮助我吗? 谢谢

1 个答案:

答案 0 :(得分:2)

我在输出中引入了两个列,一个用于标题位置,另一个用于描述位置。删除不需要的POSITION输出列。

"select id, title , category, little, flag, description,
           POSITION('$dsearch' IN title) AS pos_title,
           POSITION('$dsearch' IN description) AS pos_desc, 
        from    tbl_contents 
        where  title RLIKE  '[[:<:]]".$dsearch."[[:>:]]'
               or 
               description RLIKE  '[[:<:]]".$dsearch."[[:>:]]' 
        order by priority desc"

注意:根据您的语言语法将$dsearch输入提供给POSITION函数

有关POSITION功能的信息

https://dev.mysql.com/doc/refman/5.6/en/string-functions.html#function_position