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 に答える