Postgresql в нижнем регистре для сравнения данных

Я хочу получить содержимое строки в базе данных Postgresql и сравнить ее строчную версию с строчной версией пользовательского ввода, чтобы проверить, существует ли она в базе данных.

я пробовал :

"SELECT LOWER(name) FROM user_names WHERE name LIKE '%$search%' ORDER BY name ASC"

, но это сделало запрос вообще не работающим

РЕДАКТИРОВАТЬ

Я пытаюсь реализовать автозаполнение пользовательского интерфейса Jquery, как здесь: http://jqueryui.com/demos/autocomplete/#remote для окна поиска (для имен)

с помощью javascript и php.

php-код:

$search = ($_GET['term']);
       if (!$con)
        { die('Could not connect: '. pg_last_error ());}

       else
        {

        $sql = "SELECT name FROM users_table WHERE name LIKE '%$search%' ORDER BY name ASC";
        $result = pg_query($sql);
        $json = '[';
        $first = true;
        while ($row = pg_fetch_array($result))
        {

        if (!$first) { $json.=  ','; } else { $first = false; }
        $json.= '{"value":"'.$row['name'].'"}';
    }
    $json.= ']';
    echo $json;

    exit();

    }

JavaScript-код:

   $(document).ready(function()
    {
        $('#auto').autocomplete(
        {
            source: "./file.php",
            minLength: 3

        })

})

все вышеперечисленное отлично работает.. точно так же, как в демо здесь:http://jqueryui.com/demos/autocomplete/#remote

моя проблема в том, что имена в базе данных хранятся в верхнем регистре (, например, LORI )и, конечно же, пользователь предпочитает вставлять строчные буквы в поле поиска для поиска имени (, например. лори ). но поскольку он хранится в верхнем регистре, мне нужно его преобразовать.

я попробовал по вашему предложению:

$sql = "SELECT LOWER(name) FROM users_table WHERE name ILIKE '%$search%' ORDER BY name ASC";

затем я получил пустой раскрывающийся список! довольно странно!

Заранее спасибо.

9
задан Shadin 29 April 2012 в 17:14
поделиться