Mysql REGEX匹配查询

时间:2011-02-23 15:27:54

标签: php mysql sql regex

将字符串变量与MySQL字段匹配的正确查询是什么? 例如:

$var_surname = $_POST['surname'];
$var_surname = strtolower($var_surname);

SELECT surname FROM tblname WHERE LOWER(surname) REGEX $var_surname
..........
..........

if($check > 0)
{
    Surname already exists
} 
else 
{
    Successful
}

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

REGEX不是有效的MySQL运算符,它是REGEXP

SELECT surname FROM tblname WHERE LOWER(surname) REGEXP '$var_surname';

但是,REGEXP在这种情况下看起来有点过分 - LIKE运算符或简单的相等测试应该可以正常工作:

SELECT surname FROM tblname WHERE LOWER(surname) LIKE '$var_surname';

或者:

SELECT surname FROM tblname WHERE LOWER(surname) = '$var_surname';

在您的查询中使用之前清理$var_surname - 使用mysql_real_escape_stringPrepared Statements

答案 1 :(得分:1)

我不明白,为什么你使用REGEX(顺便说一下应该是REGEXP)?只是做

"SELECT surname FROM tblname WHERE LOWER(surname) = '$var_surname'"