Php 使用REGEXP在MySQL中进行不区分大小写的搜索
我想用一个不区分大小写的正则表达式在你的“name”列上搜索我的MySQL数据库Php 使用REGEXP在MySQL中进行不区分大小写的搜索,php,mysql,codeigniter,Php,Mysql,Codeigniter,我想用一个不区分大小写的正则表达式在你的“name”列上搜索我的MySQL数据库 Select * from customers where name regexp '.$some_var.'; 它似乎不起作用。你可以像这样试试 $result = $this->db->where('name like binary "'.$some_var.'"', NULL, FALSE) ->get('customers')
Select * from customers where name regexp '.$some_var.';
它似乎不起作用。你可以像这样试试
$result = $this->db->where('name like binary "'.$some_var.'"', NULL, FALSE)
->get('customers')
->result();
你可以试试看
$result = $this->db->where('name like binary "'.$some_var.'"', NULL, FALSE)
->get('customers')
->result();
我通常会这样做:
$some_var = mb_strtolower($some_var);
"SELECT * FROM `customers` WHERE LOWER(`name`) REGEXP '" . $some_var . "'";
OR
"SELECT * FROM `customers` WHERE LOWER(`name`) REGEXP CONCAT('[[:<:]]', ? , '[[:>:]]')";
$some\u var=mb\u strtolower($some\u var);
“从'customers'中选择*,其中较低('name`)REGEXP'”$有些人说。"'";
或
“从'customers'中选择*,其中较低(`name`)REGEXP CONCAT('[[::]]')”;
或者无论您的正则表达式使用什么,都可以用您使用的内容替换[[:>:].我通常会这样做:
$some_var = mb_strtolower($some_var);
"SELECT * FROM `customers` WHERE LOWER(`name`) REGEXP '" . $some_var . "'";
OR
"SELECT * FROM `customers` WHERE LOWER(`name`) REGEXP CONCAT('[[:<:]]', ? , '[[:>:]]')";
$some\u var=mb\u strtolower($some\u var);
“从'customers'中选择*,其中较低('name`)REGEXP'”$有些人说。"'";
或
“从'customers'中选择*,其中较低(`name`)REGEXP CONCAT('[[::]]')”;
或者无论您的正则表达式使用什么,都可以用您使用的内容替换[[:>:].试试这个
SELECT * FROM `customers` WHERE LOWER(name) REGEXP '.strtolower($some_var).';
试试这个
SELECT * FROM `customers` WHERE LOWER(name) REGEXP '.strtolower($some_var).';
结果SQL查询是什么?“似乎不起作用”如果你仔细观察它,它实际上不是描述性的。结果SQL查询是什么?“似乎不起作用”如果你仔细观察它,它实际上不是描述性的。你为什么不像im mysql@user2257655那样使用“从
客户中选择*SELECT
WHERE LOWER(name)like%”.strtolower($some_var)。“%”为什么不使用like-im-mysql@user2257655“从customers
WHERE-LOWER(name)like%”。strtolower($some_var)。“%”