简体   繁体   English

Mysql REGEX匹配查询

[英]Mysql REGEX Matching query

What is the correct query to match string variable with MySQL field? 将字符串变量与MySQL字段匹配的正确查询是什么? For example: 例如:

$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
}

Any help will be appreciated. 任何帮助将不胜感激。

REGEX isn't a valid MySQL operator, it's REGEXP : REGEX不是有效的MySQL运算符,它是REGEXP

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

However, REGEXP looks like it's overkill in this case -- the LIKE operator or a simple equality test should work fine: 但是,在这种情况下, REGEXP看起来有点过分 - LIKE运算符或简单的相等测试应该可以正常工作:

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

Or: 要么:

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

And please sanitize $var_surname before using it in your query -- use mysql_real_escape_string or Prepared Statements ! 在查询中使用它之前清理$var_surname - 使用mysql_real_escape_stringPrepared Statements

I don't understand, why are you using REGEX (should be REGEXP by the way) ? 我不明白,为什么你使用REGEX(顺便说一下应该是REGEXP )? Just do 做就是了

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM