CONCAT и регистр?

Don Arana

Новичок
CONCAT и регистр?

Привет всем!
Какая-то странная проблема в моем поиске!

Когда использую в запросе CONCAT(поле1, поле2), то начинает придираться к регистру!! А если не использую - например, ищу по одному полю - то не придирается, выводит результаты.

Использую скрипт поиска:
PHP:
if(isset($_GET['search'])) {
    $search = $_GET['search'];

## режем строку
$search = substr($search, 0, 64);

## заменяем символы при ошибке набора
$search = trim(preg_replace('/ ([\w\*]+) (\+|and) ([\w\*]+) /siU', ' +\1 +\3 ', " $search "));
	
	$qu_find = array(
		'  ',	// double spaces to single spaces
		'+ ',	// replace '+ ' with '+'
		'- ',	// replace '- ' with '-'
		'or ',	// remove 'OR '
		'and '	// replace 'AND ' with '+'
	);
	$qu_replace = array(
		' ',	// double spaces to single spaces
		'+',	// replace '+ ' with '+'
		'-',	// replace '- ' with '-'
		'',		// remove 'OR '
		'+' 	// replace 'AND ' with '+'
	);
$search = str_replace($qu_find, $qu_replace, $search);

$search = explode(" ", $search);

// ТАК НЕ ПРИДИРАЕТСЯ, ВЫВОДИТ

$query = db_query("
    SELECT
        c, client
    FROM
        orders
    WHERE
       client LIKE '%" . implode("%' AND client LIKE '%", $search) . "%'
    ORDER BY
        c
    DESC
    ");

// ТАК ПРИДИРАЕТСЯ, НЕ ВЫВОДИТ

$query = db_query("
    SELECT
        c, client
    FROM
        orders
    WHERE
       CONCAT(c,client) LIKE '%" . implode("%' AND CONCAT(c,client) LIKE '%", $search) . "%'
    ORDER BY
        c
    DESC
    ");
Поле `c` - int(11), `client` - varchar(255).

Никак не возьму в толк.... :(((

-~{}~ 29.08.05 13:15:

Изменил тип поля `c` - с `int` на `varchar`, все заработало..
Вот так
 
Сверху