在PHP中使用正则表达式来查询MYSQL

时间:2012-10-25 18:38:22

标签: php mysql regex

我正在尝试使用正则表达式查询MYSQL数据库。我希望使用此模式1234X32X12获取列下的值。

我写了一些伪代码,但我对正则表达式不熟悉,所以我希望有人可以帮助我。

代码:

if ($transposed_array[$i][0] starts with number)
    {
        $sid = regex something /^[0-9]*/
        $gid = regex something /X[0-9]*X/
        $gid = remove first and last character from $gid
        $qid = regex something /[0-9]*$/

        $question_text = mysql_query("select question from table where sid = ".$sid." and gid = ".$gid." and qid = ".$qid." limit 1");
        $transposed_array[$i][0] = $question_test
    }

任何帮助将不胜感激!

4 个答案:

答案 0 :(得分:1)

MySQL在其SQL命令中直接支持正则表达式匹配,请查看its manual

select col from table where col regexp '^h';

see this at sqlfiddle

答案 1 :(得分:0)

我建议您阅读Mysql-Manual的相应部分,其中详细介绍了如何执行正则表达式搜索。

答案 2 :(得分:0)

您可以参考mysql的正则表达式匹配函数。

http://dev.mysql.com/doc/refman/5.0/en/regexp.html

答案 3 :(得分:0)

如果它是你正在分裂的X那么这将会:

$var = "1234X32X12";

$bits = explode("X", $var);

var_dump( $bits);

array
  0 => string '1234' (length=4)
  1 => string '32' (length=2)
  2 => string '12' (length=2)

但我觉得X可以是任何字母字符,是吗?