diff --git a/CRM/Contact/BAO/Query.php b/CRM/Contact/BAO/Query.php index f34429084e0a..c296260208a6 100644 --- a/CRM/Contact/BAO/Query.php +++ b/CRM/Contact/BAO/Query.php @@ -5628,7 +5628,7 @@ public static function buildClause($field, $op, $value = NULL, $dataType = NULL) return $clause; case 'RLIKE': - return " {$clause} BINARY '{$value}' "; + return " CAST({$field} AS BINARY) RLIKE BINARY '{$value}' "; case 'IN': case 'NOT IN': diff --git a/tests/phpunit/CRM/Contact/SelectorTest.php b/tests/phpunit/CRM/Contact/SelectorTest.php index 5316ebbd23e6..04a9e968f8ac 100644 --- a/tests/phpunit/CRM/Contact/SelectorTest.php +++ b/tests/phpunit/CRM/Contact/SelectorTest.php @@ -552,7 +552,7 @@ public function testWhereClauseByOperator() { // case insensitive check 'LIKE' => "( contact_a.first_name LIKE '%Ad%' )", // case sensitive check - 'RLIKE' => "( contact_a.first_name RLIKE BINARY '^A[a-z]{3}$' )", + 'RLIKE' => "( CAST(contact_a.first_name AS BINARY) RLIKE BINARY '^A[a-z]{3}$' )", // case sensitive check 'IN' => '( contact_a.first_name IN ("Adam") )', ];