0

我想用不区分大小写的正则表达式在你的“名称”列上搜索我的 MySQL 数据库。

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

它似乎不起作用。

4

3 回答 3

2

你可以试试

$result = $this->db->where('name like binary "'.$some_var.'"', NULL, FALSE)
                   ->get('customers')
                   ->result();
于 2013-09-03T05:35:56.090 回答
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('[[:<:]]', ? , '[[:>:]]')";

或任何你的正则表达式使用替换 [[:< / >:]] 与你使用什么。

于 2013-09-03T05:39:29.940 回答
1

尝试这个

SELECT * FROM `customers` WHERE LOWER(name) REGEXP '.strtolower($some_var).';
于 2013-09-03T05:40:27.657 回答