案例使用REGEXP在MySQL中进行不敏感搜索

时间:2013-09-03 05:32:52

标签: php mysql codeigniter

我想在我的MySQL数据库上搜索你的名字"列,具有不区分大小写的正则表达式。

Select * from customers where name regexp '.$some_var.';

它似乎无法正常工作。

3 个答案:

答案 0 :(得分:2)

您可以尝试

$result = $this->db->where('name like binary "'.$some_var.'"', NULL, FALSE)
                   ->get('customers')
                   ->result();

答案 1 :(得分:1)

我通常会这样做:

$some_var = mb_strtolower($some_var);
"SELECT * FROM `customers` WHERE LOWER(`name`) REGEXP '" . $some_var . "'";
OR
"SELECT * FROM `customers` WHERE LOWER(`name`) REGEXP CONCAT('[[:<:]]', ? , '[[:>:]]')";

或你的正则表达式使用的任何替代[[:&lt; /&gt;:]]和你使用的一样。

答案 2 :(得分:1)

试试这个

SELECT * FROM `customers` WHERE LOWER(name) REGEXP '.strtolower($some_var).';